2013-06-20 7 views
6

सबसे आसान & सबसे अच्छा तरीका Gremlin के माध्यम से एक बड़े ग्राफ में नोड्स/किनारों की संख्या गिनने के लिए सबसे प्रभावी तरीका क्या है? ,Gremlin के माध्यम से एक बड़े ग्राफ में नोड्स/किनारों की संख्या?

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

हालांकि, इस बड़े रेखांकन के लिए एक व्यवहार्य विकल्प नहीं है documentation for V प्रति: सबसे अच्छा मैं पाया है वी iterator उपयोग कर रहा है

ग्राफ के लिए शीर्ष इटरेटर। ग्राफ़ में सभी के माध्यम से पुनरावृत्त करने के लिए इसका उपयोग करें। एक प्रमुख इंडेक्स लुकअप के साथ संयोजन में का उपयोग किए जाने तक बड़े ग्राफ पर देखभाल के साथ उपयोग करें।

उत्तर

5

मुझे लगता है कि सभी कोने की गिनती करने के लिए पसंदीदा तरीका होगा:

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

हालांकि, मुझे लगता है कि एक बहुत बड़ी ग्राफ g.V/E पर सिर्फ कोई फर्क नहीं पड़ता कि आप क्या करते टूट जाती है। एक बहुत बड़े ग्राफ पर गिनती करने का सबसे अच्छा विकल्प फ़ूनस (http://thinkaurelius.github.io/faunus/) जैसे टूल का उपयोग करना है ताकि आप समानांतर में गणना करने के लिए हडोप की शक्ति का लाभ उठा सकें।

+0

ग्रेट, धन्यवाद! मैं सोच रहा था कि मेटाडाटा को कहीं और ट्रैक किया जा सकता है, लेकिन फ़ूनस एक ठोस विकल्प की तरह लग रहा है। – bcm360

+0

मुझे नहीं पता कि कोई ग्राफ ट्रैक को मेटाडेटा के रूप में स्पष्ट रूप से ट्रैक करता है, हालांकि अगर कोई ऐसा करता है तो यह ग्राफ के संचालन के लिए विशिष्ट होगा। ब्लूप्रिंट्स/ग्रीमलिन में कुछ भी नहीं है जो सीधे उस गिनती पर आता है, न ही ब्लूप्रिंट किसी भी तरह से मेटाडेटा का पर्दाफाश करता है। यदि आपको पता चला कि ग्राफ़ कार्यान्वयन में आपको यह जानकारी प्राप्त करने के लिए मेटाडेटा था, तो आप 'getRawGraph() 'के साथ अंतर्निहित ग्राफ प्राप्त करके इसे एक्सेस कर सकते हैं। –

+0

समझ गया, धन्यवाद स्टीफन – bcm360

संबंधित मुद्दे