Neo4j データベースで互いに最も離れている 2 つのノードを見つけようとしています。分析の目的で、2 つのノード間の最短距離をそれらの間の距離と考えています。したがって、最も遠い 2 つのノードは、それらの間の最長最短パスになります。Cypher の次の構文を使用して、最短のノードを見つけています。
Neo4j サンプル ドキュメントhttp://docs.neo4j.org/chunked/milestone/query-match.html#match-shortest-pathに示されている 2 つのノードが与えられた場合、次の Cypher クエリを実行できます。
MATCH p = shortestPath((martin:Person)-[*..15]-(oliver:Person))
WHERE martin.name = 'Martin Sheen' AND oliver.name = 'Oliver Stone'
RETURN p
私のデータベースには 1/2 百万を超えるノードがあります。力ずくの方法は明らかに長い時間がかかります。2 つのノードを取得する簡単または高速な方法はありますか?
[余分な皺として..グラフは重み付けされていますが、この詳細は無視できます。]