2017-07-03 11 views
2

私はneo4jとそのapocプロセスライブラリを使って2つのノード間の最短経路を得ようとしています。例えば、私はその後、私は、このようなApoc Dijkstraが最短経路を計算中に両方向に移動する

MATCH (u1:Point {title:'A'}), (u2:Point {title: 'B'}) 
CREATE (u1)-[:distance {value:10}]->(u2) 

としてのそれらの関係は、今ではその逆のBへとしないから有向関係を確立している確立

CREATE (:Point {title:'A'}) 
CREATE (:Point {title:'B'}) 

以下のように2つのノードを作成
。 は、だから私は

MATCH (start:Point {title: 'B'}), (end:Point {title: 'B'}) 
CALL apoc.algo.dijkstra(start, end, 'distance', 'value') YIELD path, weight 
RETURN path, weight 

以下のようにAPOCダイクストラを呼び出すとき、私はBからAへの有向パスが自分でないよう任意の結果を得ることになっていないが、私が使用してクエリを実行すると、私は同じ結果を取得していますAからBへのパス

誰かがそれがなぜそうであるか教えてもらえますか?ダイクストラはなぜその方向性を無視しているのですか?どんな助けでも大歓迎です。

答えて

2

クエリの関係タイプに>または<を追加する必要があります。

MATCH (start:Point {title: 'B'}), (end:Point {title: 'B'}) 
CALL apoc.algo.dijkstra(start, end, 'distance>', 'value') YIELD path, weight 
RETURN path, weight 
+1

ありがとうございました。私はNeo4jに慣れていないので、それがあったのかどうかわかりませんが、apocのドキュメントでそのような詳細を見つけることができませんでした。 – MrRo

関連する問題