私は100000ノードのグラフを関係で接続しています。 ポイントAからポイントBまで、可能なパスは1つしかありません。私のモデルではループは不可能です。2組のノードの交差点(neo4j cypher traversal path)
私は、ノードのリストのパスは、第2ノードのリスト私は交差点がある場合、交点を知っている必要はありません
のパスと交差するかどうかを示します解決策を探しています。
グラフ全体(最初のノードが見つかると停止します)を経由しないで解決することは可能でしょうか?
例:赤ノードのノード2の
リスト:ノード1のpicture of graph
リストブルーノード
を少なくとも一つの交差点(黒のノード)が存在するように、要求がtrueを返す必要があります。
サイファー要求:
EDIT:CYPHER要求
match path=shortestPath((n1)-[r*]-(n2))
where id(n1) = node1 and id(n2) in nodesList1
with nodes(path) as nodespath1
match path=shortestPath((n1)-[r*]-(n2))
where id(n1) = node2 and id(n2) in nodesList2
with nodespath1, nodes(path) as nodespath2
with ANY (n IN nodespath1 WHERE n IN nodespath2) AS conflit
with ANY (n IN collect(conflit) WHERE n = true) AS conflit
RETURN conflit;
"ノードリストのパス"とは何ですか?「リストから取られたすべての可能なノードのペア間のすべてのパス」、または「リストから取られたすべての可能なノードのペアの間のパス」、または「リストのすべてのノードを含むすべてのパス」、それ以外は? – cybersam
ノードのリストのパスは、リストからのすべてのノードのペアの間の最短パスを意味します(可能なパスは1つだけです) – gsaad