Używam Neo4j 2.1.7 i Node.js do zbudowania interfejsu API REST. Dane - około 70 000 węzłów i 100 000 relacji - zawierają bardzo wiele małych połączonych podgraphów.Znajdź węzły i powiązane z nimi podgrafy za pomocą Neo4j + Cypher
Jedno wywołanie API, na przykład localhost:8000/search?name=Bussum
, powinno zwrócić wszystkie węzły o nazwach Bussum
i połączony komponent, do którego należą.
Ilustracja:
(zdjęcie z Wikipedia)
mogę uzyskać wszystkie dane muszę z zapytaniem jak to:
MATCH (a {name: "Bussum" })-[r*]-(b)
UNWIND rels AS rel
RETURN distinct startNode(rel) AS a, type(rel), endNode(rel) AS b
ale taka kwerenda po prostu zwróć wszystkie potrójne (a)-[r]-(b)
(nie zgrupowane na składnik/podgraph). Oczywiście mogłem zrekonstruować wykres w Node.js i samemu znaleźć podgramy, ale to wcale nie jest najlepsze rozwiązanie. Czy można zgrupować zwrócone dane w tablicy/kolekcji podgrafów/komponentów? Które zapytania Cyphera lepiej pasują do mojego przypadku użycia? Czy powinienem zamiast tego rozważyć użycie Neo4j Java API?
Dzięki! Bert
jak "małe" są podrysami? CZY te na ilustracji reprezentują najmniejszy lub największy? –
Niektóre zawierają jeden wierzchołek, około 100, ale większość między 5 a 10. – Bert
czy węzły w poszczególnych podstrach mają niepowtarzalny identyfikator do tego subaru? –