2015-09-12 48 views
2

我正在使用Neo4j,我認爲自己是一個新手,並且我不太瞭解如何選擇我的圖的子樹。我找到了使用shortestPathallShortestPaths的解決方案,但這與變量及其所有子項選擇整個子樹並不是一回事。在Neo4j中遞歸地匹配子樹

我想要做的是匹配MATCH (n {name: "Sovrum"})-[r:CHILDOF]->(child) return n, child但這隻給了我直接相關的節點。 enter image description here

相反,我想選擇整個子樹。 enter image description here

有沒有什麼好的方法來做到這一點,或者我錯過了一些重要的東西如何工作?

+0

漂亮的圖片:) –

回答

1

使用可變長度路徑很容易,您從根開始並告訴Cypher將CHILD_OF一路調低,直至不再進一步。

請確保在查詢中使用標籤以允許Neo4j(使用索引)快速找到您的起點。

您也可以將匹配的路徑模式,並返回路徑

MATCH path = (n:Node {name: "Sovrum"})-[:CHILDOF*]->(child) 
RETURN path 
+0

還好吧,這個作品。但是我不太明白星號與關係有什麼關係? –

+0

星號表示可變長度路徑,請參閱:http://neo4j.com/docs/stable/introduction-pattern.html#_variable_length –