使用cypher检测neo4j属性图中的循环

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] 边的节点可能会有所帮助