Ami*_*mit 13 graph cycle neo4j cypher
使用密码检测相当大的图形中的循环的最佳方法是什么.
我有一个图表,它有大约250000个节点和大约270000个关系,我想检测大约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
Run Code Online (Sandbox Code Playgroud)
然而,这并不是非常有效.
有人可以建议一个更好的方法来做到这一点.
小智 0
1) 计算未标记的节点
2) 标记没有传出关系的节点(叶)
3) 标记没有传入关系的节点(根)
4) 如果在 2 或 3 中标记了任何节点,则返回到步骤 1
5) 如果仍然存在未标记的节点,则您至少有 1 个周期
循环将位于未标记节点的集合中,
如果仍然有太多无法识别循环,
则查看具有最少 [in|out] 边的节点可能会有所帮助