2013-04-12 74 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]邊緣可以幫助
如果還有太多識別週期