Я пытаюсь добавить вершины и ребра в JanusGraph, и он не работает должным образом. Я использую Cassandra и Elasticsearch в качестве бэкэнда. Я могу добавить вершины. Я использую код ниже, чтобы проверить, добавлены ли вершины и ребра.
this.graph = JanusGraphFactory.open("conf/janusgraph-cassandra-es.properties");
trv = graph.traversal()
trv.V().count()
//Returns count and runs as expected
trv.E().count()
//Returns 0 even though I added the edges
Я использую код ниже, чтобы добавить ребра.
tx = this.graph.newTransaction();
Long vertexId = companyMap.get(Integer.parseInt(record.get("ASSIGNEE")));
Vertex assignee = this.traversal.V(vertexId).next();
Vertex patent = this.traversal.V(patentId).next();
patent.addEdge("assigned_to", assignee);
tx.commit();
Я изменил код в соответствии с комментарием Джейсона ниже. Теперь я создаю новый объект обхода всякий раз, когда хочу получить существующую вершину, а затем добавить ребро. Кажется, сейчас работает.
GraphTraversalSource trv = this.graph.traversal();
Long vertexId = companyMap.get(Integer.parseInt(record.get("ASSIGNEE")));
Vertex assignee = this.traversal.V(vertexId).next();
Vertex patent = this.traversal.V(patentId).next();
patent.addEdge("assigned_to", assignee);
trv.tx().commit();