Verschlüsselungsabfrage zum Auflisten aller nicht verbundenen Diagramme Neo4j-Diagramm-DB?
Die Neo4j-Grafikdatenbank enthält ungefähr 50.000 Knoten und> 50.000 Beziehungen. Es gibt ein Hauptdiagramm, das die meisten Knoten enthält. Es gibt jedoch mehrere Diagramme, die (noch) nicht mit dem Hauptdiagramm verbunden sind.
Um die verschiedenen Graphen zu einem großen Hauptgraphen zu verbinden, möchte ich eine Cypher-Abfrage verwenden, um Pfade oder Sammlungen verbundener Knoten nach ihrer Größe sortiert aufzulisten (größter nicht verbundener Graph zuerst).
Es gibt verschiedene Beiträge zum Stackoverflow wie:
Alle nicht verbundenen Untergraphen in einem Diagramm suchen aber es ist nicht klar, wie man es mit Cypher löst.Wie finde ich mit Cypher getrennte Knoten auf neo4j?Hier ist ein kleines Beispieldiagramm, das das Problem darstellt:Beispieldiagramm für die Neo4j-Konsole
Die folgende Cypher-Abfrage löst das Problem nicht, ist jedoch ein Ausgangspunkt. Es werden alle Knoten aufgelistet, die nicht mit dem Hauptgraphen verbunden sind. Es fehlt die Kombination dieser Knoten in Sammlungen von Knoten. Es funktioniert in einem kleinen Diagramm. In einem großen Diagramm wird nur "undefiniert" zurückgegeben ... nach einer Laufzeit von mehr als 10 Minuten.
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;
Wie benutze ich Cypher, um alle nicht verbundenen (Unter-) Graphen aufzulisten?
Umgebung: - Neo4j - Graph Database Kernel 1.9.M05 - Java - SE-Laufzeitumgebung (Build 1.7.0_17-b02)