使用密码检测相当大的图形中的循环的最佳方法是什么.
我有一个图表,它有大约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
然而,这并不是非常有效.
有人可以建议一个更好的方法来做到这一点.
众所周知,无限长路径搜索速度很慢,因为操作数量随着搜索深度呈指数增长.
如果您愿意将循环搜索限制在相当小的最大路径深度,那么您可以加快查询速度(尽管可能仍需要一些时间).例如,仅查看最多5步深的路径:
MATCH p = n-[:r1|r2|r3*..n]->n RETURN p;