我正在使用Neo4j,我認爲自己是一個新手,並且我不太瞭解如何選擇我的圖的子樹。我找到了使用shortestPath
和allShortestPaths
的解決方案,但這與變量及其所有子項選擇整個子樹並不是一回事。在Neo4j中遞歸地匹配子樹
我想要做的是匹配MATCH (n {name: "Sovrum"})-[r:CHILDOF]->(child) return n, child
但這隻給了我直接相關的節點。
有沒有什麼好的方法來做到這一點,或者我錯過了一些重要的東西如何工作?
我正在使用Neo4j,我認爲自己是一個新手,並且我不太瞭解如何選擇我的圖的子樹。我找到了使用shortestPath
和allShortestPaths
的解決方案,但這與變量及其所有子項選擇整個子樹並不是一回事。在Neo4j中遞歸地匹配子樹
我想要做的是匹配MATCH (n {name: "Sovrum"})-[r:CHILDOF]->(child) return n, child
但這隻給了我直接相關的節點。
有沒有什麼好的方法來做到這一點,或者我錯過了一些重要的東西如何工作?
使用可變長度路徑很容易,您從根開始並告訴Cypher將CHILD_OF一路調低,直至不再進一步。
請確保在查詢中使用標籤以允許Neo4j(使用索引)快速找到您的起點。
您也可以將匹配的路徑模式,並返回路徑
MATCH path = (n:Node {name: "Sovrum"})-[:CHILDOF*]->(child)
RETURN path
還好吧,這個作品。但是我不太明白星號與關係有什麼關係? –
星號表示可變長度路徑,請參閱:http://neo4j.com/docs/stable/introduction-pattern.html#_variable_length –
漂亮的圖片:) –