2013-04-12 48 views
12

使用密码在相当大的图中检测周期的最佳方法是什么?使用密码在neo4j属性图中检测周期

我有一个关于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 

然而,这并不是非常有效。

有人可以建议一个更好的方法来做到这一点。

回答

0

1)计数未带标志的节点
2),没有传出关系(叶)
3)标志节点没有传入的关系(根)
4)标志节点如果任何节点在2或3被判返回到步骤1

5)如果未带标志的节点保持至少有1个循环

的周期(一个或多个)将在所述一组未带标志的节点
寻找与最少节点的[在| out]边缘可以帮助
如果还有太多识别周期