2017-01-09 52 views
1

我有一個數據庫組織在幾個分層樹中。 節點按數字組織。以相同數字開頭的節點通過關係進行互連。例如:(5) - [連接] - (50) - [連接] - (507)...等等。我想搜索例如從第一個父節點開始的節點301:節點3我在cypher中執行此查詢嗎?在neo4j的分層樹中搜索

回答

1

如果你想搜索來自第一個父啓動特定節點,我建議以下查詢:

MATCH (n {number:1})-[:CONNECT*0..]->(n1) return n, n1; 

爲節點此查詢搜索與財產number = 1並搜索其通過CONNECT相關的所有兒童關係。如果你要搜索特定的子節點必須更改查詢是這樣的:

MATCH (n {number:1})-[:CONNECT*0..]->(n1 {number:101}) return n, n1; 

*0..部分,你可以定義直到你想搜索什麼深度,所以你也可以搜索深度= N與*0..n。本文檔是以比賽/路徑條款開始的好地方:https://neo4j.com/docs/developer-manual/current/cypher/clauses/match/

+0

非常感謝!這解決了我的問題:) –

+0

如何進行廣度優先搜索? –

+0

請看看https://neo4j.com/blog/graph-search-algorithm-basics/你會發現那裏有一些有用的信息。您也可以查看https://github.com/neo4j-contrib/neo4j-apoc-procedures,它具有Dijkstra算法的實現。 –