neo4jで二つのノード間の距離をクエリする方法は何ですか?

Neo4jでは、Cypherクエリ言語を使って2つのノード間の距離を検索することができます。最初に、ノード間のパスを特定する必要があります。そして、length()関数を使用してパスの長さを計算することができます。

以下は例として、2つのノードAとBがある場合に、それらの間の最短経路の長さをクエリしたいとします。

MATCH path=shortestPath((a)-[*]-(b))
WHERE a.id = 'A' AND b.id = 'B'
RETURN length(path) AS distance

このクエリでは、shortestPath()関数を使用してノードAとノードBの間の最短経路を見つけます。クエリ内のノードの識別子や属性を必要に応じて変更することができます。

最短距離を知りたいだけで、詳細なパス情報は必要ない場合は、shortestPath()関数の別の形式を使用できます。

MATCH path=shortestPath((a)-[*]-(b))
WHERE a.id = 'A' AND b.id = 'B'
RETURN length(path) AS distance

AノードとBノード間の最短距離を返しますが、経路自体は含まれません。

注意してください、これらのクエリはあらゆる種類の関係パスを見つけますので、実際のニーズに合わせてクエリを修正して特定の関係タイプを指定できます。

bannerAds