2013-06-20 40 views
6

什麼是最簡單的&通過Gremlin來計算大圖中節點/邊的數量的最有效方法?最好的我發現是使用V迭代器:通過Gremlin的大圖中的節點/邊的數量?

gremlin> g.V.gather{it.size()} 

然而,這不是大圖一個可行的選擇,每documentation for V

頂點迭代器的圖形。利用它遍歷圖中頂點的所有 。除非將 與鍵索引查找結合使用,否則請小心使用大圖。

回答

5

我認爲做所有頂點的計數的首選方法是:

gremlin> g = TinkerGraphFactory.createTinkerGraph() 
==>tinkergraph[vertices:6 edges:6] 
gremlin> g.V.count() 
==>6 
gremlin> g.E.count() 
==>6 

不過,我認爲,一個非常大的圖形g.V/E剛剛打破了,不管你做什麼。在一張非常大的圖表上,做一個計數的最佳選擇是使用像Faunus(http://thinkaurelius.github.io/faunus/)這樣的工具,以便您可以利用Hadoop的強大功能來並行執行計數。

+0

太好了,謝謝!我認爲元數據可能在某處被跟蹤和訪問,但Faunus聽起來像是一個很好的選擇。 – bcm360

+0

我不知道任何圖表跟蹤,作爲元數據明確,但如果有的話,它將特定於圖本身的操作。 Blueprints/Gremlin中沒有直接獲取該計數的信息,Blueprints也不以任何方式公開元數據。如果你發現一個圖形實現確實有元數據來爲你提供這些信息,你可能通過getRawGraph()獲得底層圖形來訪問它。 –

+0

明白了,謝謝Stephen – bcm360

相關問題