neo4j - 在单个密码查询中结合深度和广度优先遍历

标签 neo4j cypher

我的图是一个带有根节点和端节点的树结构,它们之间有一 strip [:NEXT]-> 的节点线。从一个到另一个的关系。该路径上的一些节点也有 [:BRANCH]->与其他根节点的关系,并通过它们与其他节点行的关系。

什么 Cypher 查询将返回路径上从头到尾的节点的有序列表,其中包含任何 BRANCH关系是否包含在具有它们的节点的记录中?

编辑:这不是技术图,但基本结构是这样的:

enter image description here

每个节点都被描绘成一个黑色的圆圈。在这种情况下,我希望这里描述的每个节点。

最佳答案

怎么样

MATCH p=(root)-[:NEXT*0..]->(leaf)
OPTIONAL MATCH (leaf)-[:BRANCH]->(branched)
RETURN leaf, branched, length(p) as l
ORDER BY l ASC

另请参阅此图形要点:http://gist.neo4j.org/?9042990

关于neo4j - 在单个密码查询中结合深度和广度优先遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695484/

相关文章:

java - 在 GWT 中使用嵌入式 Neo4j 时出现 AccessControlException

neo4j - 一个密码查询中的多个 CREATE INDEX ON

Neo4j APOC 将 CSV 导出到特定目录

neo4j - 简单的递归 CYPHER 查询

Neo4j 删除一个节点并返回删除的节点

neo4j - 当子节点有多个父节点时,如何使用 Neo4J/Cypher 避免大量冗余路径分析?

neo4j - 如何删除具有重复属性的 Neo4j 节点?

neo4j - 删除 Neo4j 图中冗余的双向关系

neo4j - 在neo4j的密码中,有没有办法获取节点的属性键?

Neo4j (3.5.14) 互连节点的 BFS/DFS 故障