Neo4j 使所有子节点递归

Neo4j 使所有子节点递归,neo4j,cypher,Neo4j,Cypher,现在,要从Neo4J返回一个子图,我使用 Match(n{id:“})可选匹配(n)-[*..25]->(m)返回不同的* 对于深度互连的图来说,这是非常低效的(因为没有明显的返回,我得到的结果是100k,而不是100以下的结果) 如何在不使用APOC的情况下有效地请求节点的所有子节点?(AKA,使独特的冗余而不是匹配中所需的;AKA,在匹配过程中只访问每个节点一次?从Neo4j 3.2.x开始,(开始)-[*…25]->(子节点)按需要运行 在此之前,您需要使用扩展功能您可以添加一个大于1的最

现在,要从Neo4J返回一个子图,我使用

Match(n{id:“})可选匹配(n)-[*..25]->(m)返回不同的*

对于深度互连的图来说,这是非常低效的(因为没有明显的返回,我得到的结果是100k,而不是100以下的结果)


如何在不使用APOC的情况下有效地请求节点的所有子节点?(AKA,使独特的冗余而不是匹配中所需的;AKA,在匹配过程中只访问每个节点一次?

从Neo4j 3.2.x开始,
(开始)-[*…25]->(子节点)
按需要运行


在此之前,您需要使用扩展功能

您可以添加一个大于1的最小深度吗?或者是否有确定(m)的规则?没有APOC,无法强制执行一次访问。@DaveBennett我甚至不知道他们是否有子女(因此我为什么使用可选匹配,而不只是匹配它)。否则,增加最小界限是否会遗漏一些直接子图?我只知道子图的深度为0-25个节点。(25只是我的任意截断)只是子级扩展看起来非常简单和基本,所以我不需要APOC。如果设置最小深度,你肯定会错过中间节点。我想可选的是出于这个原因,我想我会问你是否考虑过限制它。APOC真的是这项工作的密码工具。@Tezra是的,3.2.x使用了somet当使用具有上界和不同节点的可变长度匹配时,它应该更高效。Dave Bennet是正确的,因为以前的版本需要APOC路径扩展器过程来实现更高效的扩展。