2017-04-18 14 views
0

次のノードB、E、F、G、H、J、Kが与えられている。これらのノードが互いにどのように接続されているかを調べるためにneo4jクエリを書く必要があります。与えられたノードが接続されているかどうかを確認するNeo4j cypherクエリ

たとえば、これを表示したいパターンであるとします。

B-H-F 
    | 
    G-J-K-E 

このグラフを表示するクエリは何ですか?私はこれらのノードに接続されている他のすべてのノードを表示したくありません。

答えて

0

ソースノードの各ペアの間のパスを見つける必要があります。

各パスは、ソースセットに含まれるノードのみで構成されていることを確認してください。

あなたはCYPHERでこれを行うことができます。

WITH {GIVEN_NODES} as NDS // The source array of node IDs 
UNWIND RANGE(0, size(NDS)-2) as i 
UNWIND RANGE(i+1, size(NDS)-1) as j 
WITH NDS, 
    NDS[i] as N1, 
    NDS[j] as N2 
MATCH path = (N1)-[*]-(N2) 
     WHERE length(path)+1 <= size(NDS) AND 
     ALL(n in nodes(path) WHERE n in NDS) 
RETURN path 
関連する問題