Ich benutze Neo4j 2.1.7 und Node.js, um eine REST API zu erstellen. Die Daten - rund 70.000 Knoten und 100.000 Beziehungen - enthalten sehr viele kleine zusammenhängende Teilgraphen.Finde Knoten und ihre verbundenen Untergraphen mit Neo4j + Cypher
Ein API-Aufruf, z. B. localhost:8000/search?name=Bussum
, sollte alle Knoten mit dem Namen Bussum
und die verbundene Komponente zurückgeben, zu der sie gehören.
Illustration:
(Bild von Wikipedia)
ich alle Daten bekommen kann ich mit einer Abfrage wie folgt benötigen:
MATCH (a {name: "Bussum" })-[r*]-(b)
UNWIND rels AS rel
RETURN distinct startNode(rel) AS a, type(rel), endNode(rel) AS b
Aber eine solche Abfrage einfach zurückgeben alle Tripel (a)-[r]-(b)
(nicht gruppiert pro Komponente/Untergraph). Natürlich konnte ich das Diagramm in Node.js rekonstruieren und die Untergraphen selbst finden, aber das ist nicht die beste Lösung. Ist es möglich, die zurückgegebenen Daten in einem Array/einer Sammlung von Untergraphen/Komponenten zu gruppieren? Welche Cypher-Abfragen würden besser zu meinem Anwendungsfall passen? Oder sollte ich stattdessen die Neo4j Java API verwenden?
Danke! Bert
Wie klein sind die Untergraphen? MACHEN die in der Abbildung die kleinsten bis größten? –
Einige enthalten einen Scheitelpunkt, einige 100, aber die Mehrzahl zwischen 5 und 10. – Bert
Haben die Knoten in jedem einzelnen Untergraphen eine eindeutige Kennung für diesen Untergraphen? –