假设我有节点/边:
A --> M 300
A --> B 100
A --> C 200
B --> D 300
B --> E 200
B --> L 1300
我将源节点作为A,B传递,然后如何显示以金额和限制按2
排序的以下输出A --> M 300
A --> C 200
B --> L 1300
B --> D 300
答案 0 :(得分:0)
我将假设你知道如何过滤顶点“A”和“B”并开始遍历:
gremlin> g = new TinkerGraph()
==>tinkergraph[vertices:0 edges:0]
...
gremlin> g.v("A","B").outE.groupBy{it.outV.next()}{[it.amount,it.inV.next()]}.cap.next()
==>v[A]=[[200, v[C]], [100, v[B]], [300, v[M]]]
==>v[B]=[[300, v[D]], [1300, v[L]], [200, v[E]]]
所以上面的内容为您提供了所有“A”和“B”元素与其“金额”分组(不确定该数字在您的域中代表什么)。一旦你有了,只需使用“减少”闭包来排序和弹出列表中的前两个项目:
gremlin> g.v("A","B").outE.groupBy{it.outV.next()}{[it.amount,it.inV.next()]}{it.sort{a,b->b[0]<=>a[0]}[0..<2]}.cap.next()
==>v[A]=[[300, v[M]], [200, v[C]]]
==>v[B]=[[1300, v[L]], [300, v[D]]]