以下未完
MATCH path = (start:A)-[*]->(end:A)
WHERE start.fen = 'abc'
WITH distinct path as distinct_path
WHERE length(distinct_path) > 3
return distinct_path
LIMIT 10
但是当删除 WHERE 子句时,它会返回
MATCH path = (start:A)-[*]->(end:A)
WHERE start.fen = 'abc'
WITH distinct path as distinct_path
return distinct_path
LIMIT 10
WHERE 子句导致其未完成怎么办?
两个查询都有一个
LIMIT 10
,但第二个查询不受任何 WHERE
子句限定,因此它可以简单地返回它找到的前 10 个。
它只找到 10 并停止。
第一个查询带有附加的
WHERE
,意味着返回的 10 must 的路径长度 > 3,这意味着它必须遍历所有较短的路径并丢弃它们,并跟踪它尝试过的路径。您只是在寻找更长的路径。所以这只是更多的计算工作。也许更多的计算工作超出了我们等待的耐心。