3

私はjava/pipesを介してgremlinを使用しようとしています。最初のクエリの1つとして、最大距離3の特定の開始ノードから到達可能なすべてのノードを検索しようとしています。暗号では、クエリは次のとおりです。

START n = node(*)
MATCH n -[*1..3]-> reached 
WHERE (has(n.id) and n.id = \"v1\")
RETURN distinct n, reached

これは正しく機能し、グレムリンでこれまでに持っているものは次のとおりです。

_().has('idd', 'v1').out().loop(1){it.loops < 3}{true}

これは正しく機能しません。私の理解では、各反復からの出力を出力し、3回反復する必要があります。現時点では、結果が少なすぎます。

どんな助けもいただければ幸いです、

ありがとう。

4

1 に答える 1

2

開始ノードがgv(1)の場合、3ステップ離れたすべての一意のノードを見つけるには次のようにします。

g.v(1).out.loop(1){it.loops < 3}{true}.dedup

..あなたはそれを<4にする必要があるかもしれません(忘れてください)。次に、開始ノードのidd = v1の場合は、次のようにします。

g.V('idd','v1').out.loop(1){it.loops < 3}{true}.dedup

iddにインデックスがあることを確認してください。そうでない場合は、idd=v1を持つ頂点のすべてのgVを線形スキャンします。

HTH、マルコ。

于 2013-01-21T20:05:02.423 に答える