次のようなノード/エッジがあるとします。
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
頂点 "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」要素を「量」でグループ化したものです (その数字がドメインで何を表しているかはわかりません)。それができたら、「reduce」クロージャを使用して、リストの最初の 2 つの項目を並べ替えてポップオフします。
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]]]