我使用neo4j作爲圖數據庫,我想從該節點的鄰居節點和所有相關的鄰居返回深度從1到3不等。我正在做這個但它會卡住: 請注意,它是一個大圖。Neo4j圖深度遍歷Cypher
start n = node(*) where n.NID contains "9606.ENS3"
MATCH (n)-[Rel1*1..3]-(m) RETURN m;
任何人都有線索如何遍歷圖上,並得到結果?
我使用neo4j作爲圖數據庫,我想從該節點的鄰居節點和所有相關的鄰居返回深度從1到3不等。我正在做這個但它會卡住: 請注意,它是一個大圖。Neo4j圖深度遍歷Cypher
start n = node(*) where n.NID contains "9606.ENS3"
MATCH (n)-[Rel1*1..3]-(m) RETURN m;
任何人都有線索如何遍歷圖上,並得到結果?
您的問題顯示一箇舊的Cypher語法。關於START子句的docs表示:
START子句只能在訪問舊版索引時使用。在 所有其他情況下,請使用MATCH(請參見第3.3.1節「MATCH」)。
我認爲這應該工作:
MATCH(n)-[Rel1*1..3]->(m)
WHERE n.NID contains "9606.ENS3"
RETURN m
任何線索都可以優化,因爲它是大型數據集?瀏覽器錯誤 –
您可以嘗試在'n'和'm'節點(例如'MATCH(n:NodeTypeA) - [Rel1 * 1..3] - >(m:NodeTypeB)'')中指定已知標籤。在n.NID屬性中創建一個索引也是一個好主意。 –
已經創建了一個唯一的約束,並添加標籤使其成爲bug –
什麼Neo4j的版本是您使用?你遇到了什麼錯誤? –
我正在使用3.2.1社區 –