2017-07-27 120 views
2

眼下,返回從Neo4j的一個子圖,我用獲取所有子節點遞歸

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

這是緊密相連的圖形非常低效的(因爲沒有返回不同的,我得到100K的結果並列如何有效地請求一個節點的所有子節點而不使用APOC?(也叫做DISTINCT冗餘而不是在匹配中需要的; AKA,在匹配期間只訪問每個節點一次?)

+0

你可以添加一個最小深度大於1?或者是否有確定(m)的規則?如果沒有APOC,無法實施單次訪問。 –

+0

@DaveBennett我甚至不知道他們是否有孩子(因此我爲什麼使用可選匹配而不是匹配它)。否則,會不會增加一些直接的孩子的最小限度?我只知道子圖深度爲0-25節點。 (25只是我的任意切斷) – Tezra

+0

這只是孩子擴展看起來很簡單和基本,我不應該需要APOC。 – Tezra

回答

0

對於Neo4j 3.2.x,(start) - [* .. 25] - >(children)按照需要表現。

在這之前,你需要使用APOC擴展功能apoc.path.spanningTree