Gremlin 如何得到2个顶点的路径?

Gremlin 如何得到2个顶点的路径?,gremlin,janusgraph,Gremlin,Janusgraph,现在我有了下面的查询,我想得到所有的边缘,这很有趣,为什么我们得到了2条相同的路径,我想得到路径的细节。我如何实施 Vertex fromNode=g.V().has('name','alice').next();顶点toNode=g.V().has('name','bobby')。next();g、 重复(两个().simplePath())。直到(is(toNode)).path() ==>[v[4224],v[40964296]] ==>[v[4224],v[40964296]] ==>[

现在我有了下面的查询,我想得到所有的边缘,这很有趣,为什么我们得到了2条相同的路径,我想得到路径的细节。我如何实施

Vertex fromNode=g.V().has('name','alice').next();顶点toNode=g.V().has('name','bobby')。next();g、 重复(两个().simplePath())。直到(is(toNode)).path()
==>[v[4224],v[40964296]]
==>[v[4224],v[40964296]]
==>[v[4224],v[4144],v[40964256],v[4096],v[40964296]]

我们有下面的图表

gremlin> a = graph.addVertex("name", "alice")
==>v[4208]
gremlin> b = graph.addVertex("name", "bobby")
==>v[40968424]
gremlin> c = graph.addVertex("name", "cindy")
==>v[4192]
gremlin> d = graph.addVertex("name", "david")
==>v[40972520]
gremlin> e = graph.addVertex("name", "eliza")
==>v[40964272]
gremlin> a.addEdge("rates",b,"tag","ruby","value",9)
==>e[2ry-38w-azv9-oe3fs][4208-rates->40968424]
gremlin> b.addEdge("rates",c,"tag","ruby","value",8)
==>e[odzq5-oe3fs-azv9-38g][40968424-rates->4192]
gremlin> c.addEdge("rates",d,"tag","ruby","value",7)
==>e[170-38g-azv9-oe6lk][4192-rates->40972520]
gremlin> d.addEdge("rates",e,"tag","ruby","value",6)
==>e[oe04d-oe6lk-azv9-oe08g][40972520-rates->40964272]
gremlin> a.addEdge("rates",e,"tag","java","value",9)
==>e[366-38w-azv9-oe08g][4208-rates->40964272]
gremlin> g.E().values("tag")
==>ruby
==>ruby
==>ruby
==>ruby
==>java
gremlin> graph.tx().commit()
我希望获得如下路径详细信息:

==>bobby=[v[0], e[10][0-rates->2], v[2]]
==>cindy=[v[0], e[10][0-rates->2], v[2], e[11][2-rates->4], v[4]]
==>david=[v[0], e[10][0-rates->2], v[2], e[11][2-rates->4], v[4], e[12][4-rates->6], v[6]]

您只需通过显式遍历边来指定也需要这些边:

gremlin> g.V(fromNode).repeat(bothE().otherV().simplePath()).until(is(toNode)).path()
==>[v[0],e[10][0-rates->2],v[2]]
==>[v[0],e[14][0-rates->8],v[8],e[13][6-rates->8],v[6],e[12][4-rates->6],v[4],e[11][2-rates->4],v[2]]

您只需通过显式遍历边来指定也需要这些边:

gremlin> g.V(fromNode).repeat(bothE().otherV().simplePath()).until(is(toNode)).path()
==>[v[0],e[10][0-rates->2],v[2]]
==>[v[0],e[14][0-rates->8],v[8],e[13][6-rates->8],v[6],e[12][4-rates->6],v[4],e[11][2-rates->4],v[2]]

在哪里可以找到otherV()、simplePath()等函数?我可以参考任何文档或资源吗?所有步骤都在文档中:在哪里可以找到otherV()、simplePath()等函数?我可以参考任何文档或资源吗?所有步骤都在文档中: