Ich habe Grafik: (:Sector)<-[:BELONGS_TO]-(:Company)-[:PRODUCE]->(:Product)
.Neo4j/Cypher, die ersten n Knoten in der Traversal Zweig
Ich bin auf der Suche nach der Abfrage unten.
Beginnen Sie mit (:Sector)
. Dann passen Sie die ersten 50 Unternehmen in diesem Bereich an und für jedes Unternehmen die ersten 10 Produkte.
Die erste Grenze ist einfach. Aber was ist mit der Begrenzung von Produkten?
Ist es möglich mit Chiffre?
UPDATE
Wie @cybersam unten Abfrage vorgeschlagen wird gültige Ergebnisse
MATCH (s:Sector)<-[:BELONGS_TO]-(c:Company)
WITH c
LIMIT 50
MATCH (c)-[:PRODUCE]->(p:Product)
WITH c, (COLLECT(p))[0..10] AS products
RETURN c, products
jedoch diese Lösung nicht zurück skaliert, da es alle Produkte pro Unternehmen durchläuft nach wie vor. Slice angewendet nach jedem Unternehmen Produkte gesammelt. Wenn die Anzahl der Produkte steigt, wird sich die Abfrageleistung verschlechtern.
prost @cybersam. Diese Abfrage funktioniert. Aber wie wird es skalieren, wenn die Anzahl der Produkte pro Unternehmen wächst? Sie werden immer noch alle Produkte zusammenpassen, sie gruppieren und danach begrenzen. Ich war interessiert, ob es möglich ist, den Abgleich zu beenden, wenn Sie eine bestimmte Anzahl von Knoten gefunden haben. – drgraduss
Das ist eine gute Frage. Leider sehe ich keine Möglichkeit, 'LIMIT' zu verwenden, so dass es nur die Produkte pro Firma limitiert. – cybersam
okay. scheint wie Traversal Framework API ist die Antwort für mich. Ich werde die Antwort mit Hinweis auf Skalierbarkeit akzeptieren. Danke für deine Hilfe @cybersam. – drgraduss