2
arangodb 3.1で深さnの2つの頂点間のすべてのパスを取得するにはどうすればよいですか? AQLドキュメントで見つかった唯一の可能性は最短パスでした。しかし、私はすべての道を手に入れたいと思っています。2つの頂点間のすべてのパスを見つける
ありがとうございました!次のAQLステートメントを使用することができ、既知の_id
値と頂点の間の長さが正確n
ですべてのパスを取得するために
arangodb 3.1で深さnの2つの頂点間のすべてのパスを取得するにはどうすればよいですか? AQLドキュメントで見つかった唯一の可能性は最短パスでした。しかし、私はすべての道を手に入れたいと思っています。2つの頂点間のすべてのパスを見つける
ありがとうございました!次のAQLステートメントを使用することができ、既知の_id
値と頂点の間の長さが正確n
ですべてのパスを取得するために
:
FOR target, unused, path IN @depth ANY @source edgeCollection
FILTER target._id == @target
RETURN path
私はすぐに部品を説明してみましょう:
FOR target, unused, path
=>戻り値を定義します。target
=検索する頂点、unused
=それを指している最後のエッジ、path
=フォーマットの完全パス:{edges: [edge1, edge2, ..], vertices: [vertex1, vertex2, ...]}
IN @depth
=> exaktの深さを短くしないでください。n
が返され、パスは返されなくなります。 @[email protected]
でも、長さが最小から最大までのすべてのパスが返されます。ANY
=>検索方向、これはエッジの方向を無視し、また、エッジコレクションのINBOUND
又はOUTBOUND
@source
=>目標頂点IDedgeCollection
=>名を指定でき、またGRAPH "graphName"
FILTER target._id == @target
=>正しい頂点が見つかったことを検証します。RETURN path
=>まあパスを返す;)ありがとう@mchacki!それが探していたものです!最初のパラメータターゲットには結果のすべての頂点が含まれていると思いました。 – chhl
http://stackoverflow.com/questions/29677086/arangodb-how-to-get-all-the-possible-paths-between-2-vertices – kyle
ありがとう@kyleしかし、これはarangodb 3.1で動作していません – chhl