以递归方式获取所有子节点

时间:2017-07-27 19:36:23

标签: neo4j cypher

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

Match(n{id:"<uuid>"}) OPTIONAL MATCH (n)-[*..25]->(m) RETURN DISTINCT *

这对于深度互连的图形效率非常低(因为没有RETURN DISTINCT,我得到100k的结果,因为它可以接近100个结果。

如何在不使用APOC的情况下有效地请求节点的所有子节点? (AKA,使DISTINCT多余而不是匹配所需; AKA,在匹配期间只访问每个节点一次?)

1 个答案:

答案 0 :(得分:0)

从Neo4j 3.2.x开始,(start)-[*..25]->(children)表现得很好。

在此之前,您需要使用APOC展开功能apoc.path.spanningTree