TraversalDescriptionを使用して2つのノード間のすべての最短パスを見つける必要があります。TraversalDescriptionを使用して最短パスを見つける
(私は後でいくつかの具体的な評価を追加する必要があるので、私は)(サイファー手順allShortestPathsを使用することはできません。 Neo4J: shortest paths with specific relation types sequence constrain )
Node startNode = ...;
Node endNode = ...;
TraversalDescription td = graphDb.traversalDescription()
.breadthFirst()
.evaluator(Evaluators.endNodeIs(Evaluation.INCLUDE_AND_PRUNE,
Evaluation.EXCLUDE_AND_CONTINUE,
endNode));
for (Path path : td.traverse(startNode)) {
// only 1 path found
}
私は1つだけのパスを取得します。
しかし、私はサイファークエリを実行する場合:
MATCH (startNode{...})
MATCH (endNode{...})
MATCH path = allShortestPaths((startNode)-[*]-(endNode))
RETURN path;
同じstartNodeとエンドノードが見つかりもっとそして1つのパスがあります。
すべての(最短の)パスを見つけるためにTraversalDescriptionを設定するにはどうすればよいですか?
ありがとうございました。私は 'BidirectionalTraversalDescription'を使用しようとしましたが、結果を得ましたが、重大なパフォーマンスの問題が発生しました: http://stackoverflow.com/questions/43526585/neo4j-set-up-bidirectionaltraversaldescription-for-shortest-paths-search – Kit