2013-06-20 9 views
6

Jaki jest najłatwiejszy sposób na zliczanie liczby węzłów/krawędzi na dużym wykresie za pomocą Gremlina? Najlepszym znalazłem się przy użyciu V iterator:Liczba węzłów/krawędzi na dużym wykresie za pośrednictwem Gremlina?

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

Jednak to nie jest realną opcją dla dużych wykresów, za tym documentation for V:

Iterator wierzchołek na wykresie. Wykorzystaj to do iteracji przez wszystkie wierzchołki na wykresie. Zachowaj ostrożność na dużych wykresach, chyba że użyto w połączeniu z wyszukiwaniem indeksu klucza.

Odpowiedz

5

Myślę, że najlepszym sposobem, aby zrobić zliczenie wszystkich wierzchołków będzie:

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

chociaż myślę, że na bardzo dużym wykresie g.V/E prostu załamuje bez względu na to, co robisz. Na bardzo dużym wykresie najlepszą opcją do liczenia jest użycie narzędzia takiego jak Faunus (http://thinkaurelius.github.io/faunus/), aby można było wykorzystać moc Hadoop do równoległego liczenia.

+0

Świetnie, dziękuję! Myślałem, że metadane mogą być śledzone i dostępne gdzieś, ale Faunus brzmi jak solidna alternatywa. – bcm360

+0

Nie wiem, że jakiekolwiek wykresy śledzą to jako metadane jawnie, ale gdyby tak było, to byłoby to specyficzne dla operacji samego wykresu. Nie ma nic w Blueprints/Gremlin, które dostaje się do tego bezpośrednio, ani Blueprints w żaden sposób nie ujawniają metadanych. Jeśli odkryłeś, że implementacja wykresu ma metadane, aby uzyskać te informacje, prawdopodobnie uzyskasz do niego dostęp, pobierając podstawowy wykres za pomocą 'getRawGraph()'. –

+0

Mam to, dziękuję Stephen – bcm360

Powiązane problemy