1

我在下面有以下 gremlin 命令。它可以正常工作。

new File("data/1a78de40-8f0a-1028-9c9e-db07163b51b2.csv").eachLine{l->p=l.split(",");v1=g.V().has('uuid',p[0])?:graph.addVertex('uuid',p[0]);v2=g.V().has('uuid',p[1])?:graph.addVertex('uuid',p[1]);}

但下面不能很好地工作。

new File("data/1a78de40-8f0a-1028-9c9e-db07163b51b2.csv").eachLine{l->p=l.split(",");v1=g.V().has('uuid',p[0])?:graph.addVertex('uuid',p[0]);v2=g.V().has('uuid',p[1])?:graph.addVertex('uuid',p[1]);v1.addEdge(p[4],v2)}

错误在这里:

gremlin> new File("data/1a78de40-8f0a-1028-9c9e-db07163b51b2.csv").eachLine{l->p=l.split(",");v1=g.V().has('uuid',p[0])?:graph.addVertex('uuid',p[0]);v2=g.V().has('uuid',p[1])?:graph.addVertex('uuid',p[1]);v1.addEdge(p[4],v2)}

21:30:12 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [(uuid = 1a78de40-8f0a-1028-9c9e-db07163b51b2)]. For better performance, use indexes
21:30:12 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [(uuid = d803d140-8f0a-1028-98de-db07163b51b2)]. For better performance, use indexes
21:30:12 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [(uuid = 1a78de40-8f0a-1028-9c9e-db07163b51b2)]. For better performance, use indexes
21:30:12 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [(uuid = 92df9f40-8f0a-1028-8723-db07163b51b2)]. For better performance, use indexes
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.addEdge() is applicable for argument types: (java.lang.String, org.janusgraph.graphdb.vertices.StandardVertex) values: [CommunitiesMember, v[122908672]]
Type ':help' or ':h' for help.
Display stack trace? [yN]

csv文件如下:

1a78de40-8f0a-1028-9c9e-db07163b51b2,d803d140-8f0a-1028-98de-db07163b51b2,2012-09-18T08:56:01Z,1,CommunitiesMember
1a78de40-8f0a-1028-9c9e-db07163b51b2,92df9f40-8f0a-1028-8723-db07163b51b2,2012-09-18T08:56:01Z,1,CommunitiesMember
1a78de40-8f0a-1028-9c9e-db07163b51b2,281edc40-3c20-102c-9a69-980191c9f99a,2012-09-18T08:56:01Z,1,CommunitiesMember
1a78de40-8f0a-1028-9c9e-db07163b51b2,878c73c0-8f0a-1028-91a1-db07163b51b2,2012-09-18T08:56:01Z,1,CommunitiesMember
1a78de40-8f0a-1028-9c9e-db07163b51b2,5427d240-9f1e-102c-9233-9c1aa9e13df3,2012-09-18T08:56:01Z,1,CommunitiesMember
4

1 回答 1

1

这里的问题是您正在分配遍历而不是为变量分配顶点。

new File("data/1a78de40-8f0a-1028-9c9e-db07163b51b2.csv").eachLine{
  l->p=l.split(",");
  t_v1= g.V().has('uuid',p[0]);
  v1 = t_v1.hasNext() ? t_v1.next() : graph.addVertex('uuid',p[0]);
  t_v2 = g.V().has('uuid',p[1]);
  v2 = t_v2.hasNext() ? t_v2.next() : graph.addVertex('uuid',p[1]);
  v1.addEdge(p[4],v2);
}

应该管用。

于 2017-08-15T13:44:56.520 回答