2017-07-03 164 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語法。關於START子句的docs表示:

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

已經創建了一個唯一的約束,並添加標籤使其成爲bug –