1
我有一個數據庫組織在幾個分層樹中。 節點按數字組織。以相同數字開頭的節點通過關係進行互連。例如:(5) - [連接] - (50) - [連接] - (507)...等等。我想搜索例如從第一個父節點開始的節點301:節點3我在cypher中執行此查詢嗎?在neo4j的分層樹中搜索
我有一個數據庫組織在幾個分層樹中。 節點按數字組織。以相同數字開頭的節點通過關係進行互連。例如:(5) - [連接] - (50) - [連接] - (507)...等等。我想搜索例如從第一個父節點開始的節點301:節點3我在cypher中執行此查詢嗎?在neo4j的分層樹中搜索
如果你想搜索來自第一個父啓動特定節點,我建議以下查詢:
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/
非常感謝!這解決了我的問題:) –
如何進行廣度優先搜索? –
請看看https://neo4j.com/blog/graph-search-algorithm-basics/你會發現那裏有一些有用的信息。您也可以查看https://github.com/neo4j-contrib/neo4j-apoc-procedures,它具有Dijkstra算法的實現。 –