现在,要从 Neo4J 返回子图,我使用
Match(n{id:"<uuid>"}) OPTIONAL MATCH (n)-[*..25]->(m) RETURN DISTINCT *
这对于深度互连的图形来说效率非常低(因为没有 RETURN DISTINCT,我得到 100k 的结果与可怜的 100 个结果相提并论。
如何在不使用APOC的情况下高效地请求节点的所有子节点?(又名,在匹配中使 DISTINCT 冗余而不是必需;又名,在匹配过程中只访问每个节点一次?
从 Neo4j 3.2.x 开始,(start)-[*..25]->(children)
的行为符合预期。
在此之前,您需要使用 APOC 扩展函数 apoc.path.spanningTree