【发布时间】:2020-06-14 17:21:26
【问题描述】:
我想要一条从顶点 A、C、D、E、G、H 出发的路径,
我厌倦了下面的代码
g.V().hasLabel('a').repeat(out().simplePath()).until(hasLabel('h')).
path().by(values('vehicle','time').fold())
我收到的输出
[[10.00,8.30,v1,v2],[10.30,9.00,9.30,v1,v2,v3],[11.00,9.30,10.00,v1,v2,v3],[1
1.30,10.00,10.30,v1,v2,v3],[12.00,11.00,v1,v3],[12.30,11.30,v1,v3]]
预期输出
[a:[10.00,v1],c:[11.00,v1],d:[11.30,v1],e:[12.00,v1],g:[12.30,v1],h:[1.00,v1]],[a:[8.30,v2],c:[9.00,v2],d:[9.30,v2],e:[10.00,v2],g:[11.00,v3],h:[11.30,v3]]
以下是示例图
v1 = graph.addVertex(id,1,label,'a','vehicle','v1','time',10.00)
v2 = graph.addVertex(id,2,label,'b','vehicle','v1','time',10.30)
v3 = graph.addVertex(id,3,label,'c','vehicle','v1','time',11.00)
v4 = graph.addVertex(id,4,label,'d','vehicle','v1','time',11.30)
v5 = graph.addVertex(id,5,label,'e','vehicle','v1','time',12.00)
v7 = graph.addVertex(id,7,label,'g','vehicle','v1','time',12.30)
v8 = graph.addVertex(id,8,label,'h','vehicle','v1','time',1.00)
v1.addEdge('traveles',v3)
v3.addEdge('traveles',v4)
v4.addEdge('traveles',v5)
v5.addEdge('traveles',v7)
v7.addEdge('traveles',v8)
g.V(1).property(list,'vehicle','v2').property(list,'time',8.30)
g.V(3).property(list,'vehicle','v2').property(list,'time',9.00).property(list,'vehicle','v3').property(list,'time',9.30)
g.V(4).property(list,'vehicle','v2').property(list,'time',9.30).property(list,'vehicle','v3').property(list,'time',10.00)
g.V(5).property(list,'vehicle','v2').property(list,'time',10.00).property(list,'vehicle','v3').property(list,'time',10.30)
g.V(7).property(list,'vehicle','v3').property(list,'time',11.00)
g.V(8).property(list,'vehicle','v3').property(list,'time',11.30)
谁能帮帮我
【问题讨论】:
-
我在下面添加了一个带有一些建议的答案,但如果您可以包含一些以与 github.com/krlawrence/graph/blob/master/sample-code/… 类似的方式构建的示例数据,那么在向 Gremlin 提问时通常会有所帮助。
标签: gremlin tinkerpop gremlin-server