Zapytanie Cypher do listy wszystkich odłączonych wykresów Neo4j graph DB?

Baza danych wykresu Neo4j zawiera około 50 000 węzłów i> 50 000 relacji. Istnieje główny wykres zawierający większość węzłów. Ale istnieje kilka wykresów, które nie są (jeszcze) podłączone do głównego wykresu.

Aby połączyć różne wykresy w celu utworzenia jednego dużego wykresu głównego, zamierzam użyć zapytania Cypher do wyświetlenia ścieżek lub kolekcji połączonych węzłów uporządkowanych według ich wielkości (najpierw największy rozłączony wykres).

Istnieje kilka postów na temat stackoverflow, takich jak:

Znajdowanie wszystkich odłączonych podgrafów na wykresie ale nie jest oczywiste, jak go rozwiązać za pomocą Cyphera.Jak znaleźć rozłączone węzły na neo4j z Cypherem?

Oto mały przykładowy wykres przedstawiający problem:Przykładowy wykres konsoli Neo4j

Następujące zapytanie Cypher nie rozwiązuje problemu, ale jest punktem wyjścia. Wyświetla listę wszystkich węzłów, które nie są połączone z głównym wykresem. Brakuje połączenia tych węzłów w zbiory węzłów. Działa na małym wykresie. Na dużym wykresie zwraca tylko „undefined” ... po uruchomieniu przez ponad 10 minut.

START s=node(3), n=node(*) 
MATCH s-[*1..10]-m 
WITH collect(m) as members, n 
WHERE NOT n in members 
RETURN DISTINCT id(n), n.name? 
ORDER BY id(n) 
LIMIT 10;

Jak używać Cyphera do wyświetlania wszystkich odłączonych (pod) wykresów?

Środowisko: - Neo4j - Jądro bazy danych wykresów 1.9.M05 - Środowisko wykonawcze Java - SE (kompilacja 1.7.0_17-b02)

questionAnswers(1)

yourAnswerToTheQuestion