0

次のようなノード/エッジがあるとします。

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 
4

1 に答える 1

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」要素を「量」でグループ化したものです (その数字がドメインで何を表しているかはわかりません)。それができたら、「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]]]
于 2013-09-23T18:13:52.533 に答える