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算法的实现。 –