При использовании обхода Janusgraph withRemote (язык гремлина) возникают проблемы с индексом

Я использую Elastic Search в качестве сервера индекса. И у меня есть индекс со свойством "poiId", но когда я добавил новую вершину с этим свойством, а затем начал искать ее, используя тот же удаленный обход, он ничего не нашел. Таким образом, он продолжает добавлять новые вершины. Что не так с кодом?

public class Loader {

    public static void main(String[] args) throws Exception {
    Graph graph = EmptyGraph.instance();
    List<String> lines = IOUtils.readLines(FileUtils.openInputStream(new File(args[0])), "UTF-8");
    for (String line : lines) {
        GraphTraversalSource g = graph.traversal().withRemote("remote-graph.properties");
        String[] cols = StringUtils.split(line, ",");
        System.out.println(Arrays.asList(cols));
        GraphTraversal<Vertex, Vertex> t1 = g.V().has("poiId", cols[0]);
        GraphTraversal<Vertex, Vertex> t2 = g.V().has("poiId", cols[1]);
        Object v1Id = null;
        if (!t1.hasNext()) {
            System.out.println(String.format("cols1 ADDED: %s", cols[0]));
            v1Id = g.addV().property("poiId", cols[0]).next().id();
        } else {
            v1Id = t1.next().id();
        }

        Object v2Id = null;
        if (!t2.hasNext()) {
            System.out.println(String.format("cols2 ADDED: %s", cols[1]));
            v2Id = g.addV().property("poiId", cols[1]).next().id();
        } else {
            v2Id = t2.next().id();
        }
        g.V(v1Id).as("a").V(v2Id).as("b").addE("relation").property("step", Integer.parseInt(cols[2])).from("a")
                .to("b").next();

        g.close();
    }

}

}

0 ответов

Другие вопросы по тегам