При использовании обхода 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();
}
}
}