2017-07-03 10 views
0

私はグラフデータベースとしてneo4jを使用しています。そのノードの隣にある開始ノードから、1から3までの深さまですべての関連する隣接ノードから戻したいと思います。しかし、それはつまらない: それは大きなグラフであることに注意してください。Neo4jグラフ深度トラバーサルCypher

start n = node(*) where n.NID contains "9606.ENS3" 
MATCH (n)-[Rel1*1..3]-(m) RETURN m; 

グラフ上でのトラバーサルの仕方や結果を知りたい人は誰ですか?

+0

あなたは何のNeo4jのバージョンを使用していますか?あなたはどんなエラーを出していますか? –

+0

私は3.2.1コミュニティを使用しています –

答えて

1

あなたの質問には古いCypherの構文が表示されます。 docsはSTART句について述べています。

START句は、従来のインデックスにアクセスする場合にのみ使用してください。 の場合は、代わりにMATCHを使用します(3.3.1項「MATCH」を参照)。

私は、これは動作するはずと信じて:

MATCH(n)-[Rel1*1..3]->(m) 
WHERE n.NID contains "9606.ENS3" 
RETURN m 
+0

大規模なデータセットとして最適化する手がかりはありますか?ブラウザーのバグ –

+0

「n」と「m」ノード(「MATCH(n:NodeTypeA) - [Rel1 * 1..3] - >(m:NodeTypeB)」など)で既知のラベルを指定できます。 n.NIDプロパティにインデックスを作成することも良い考えです。 –

+0

一意の制約がすでに作成されており、ラベルを追加するとバグになります –

関連する問題