使用密码检测相当大小的图形中的循环的最佳方法是什么。
我有一个图表,它有大约90000个节点和大约320000个关系,我想在大约10k节点的子图中检测周期并涉及100k关系。我写的密码就像
start
n = node:node_auto_index(some lucene query that returns about 10k nodes)
match
p = n-[:r1|r2|r3*]->n
return p
然而,这并不是非常有效。
有人可以建议更好的方法来做到这一点。
答案 0 :(得分:6)
众所周知,无限长路径搜索速度很慢,因为操作次数会随着搜索深度呈指数级增长。
如果您愿意将周期搜索限制在相当小的最大路径深度,那么您可以加快查询速度(尽管可能还需要一些时间)。例如,仅查看最多5步深的路径:
MATCH p = n-[:r1|r2|r3*..n]->n
RETURN p;