2016-04-04 2 views
1

Ich versuche, alle untergeordneten Elemente eines bestimmten Knotens zu finden.Neo4j: Ermitteln der Beziehungen von nur einem Tag

match(t:TAG)<-[children:CHILD_OF]-(subtag:TAG) where t.name="brand" return t.name, subtag.name 

Ich bekomme das richtige Ergebnis von der Abfrage oben. Aber ich bin zweifelhaft, dass diese Abfrage effizient ist. Da es zuerst alle Beziehungen von "tagA ist ein Kind von tagB" erhält und es dann filtert, wo tagB wie angegeben ist.

Es muss einen besseren Weg geben, dies zu schreiben. Bitte helfen Sie.

Antwort

3

Versuchen Sie, diese

match(t:TAG) where t.name="brand" with t 
Match (t)<-[children:CHILD_OF]-(subtag:TAG) return t.name, subtag.name 

Sie den Unterschied, indem Sie überprüfen profile

+0

überraschenderweise meine Abfrage ist schneller – tanvi

+0

Es könnte gesetzt becouse Ihrer Daten sein (Sie haben kleine Anzahl von Tags und Neo4j optimiert Abfrage) , Zwischenspeicher. Und wenn es mir seltsam vorkommt, stelle sicher, dass du einen Index für den Namen hast. – Evgen

+0

Das könnte der Fall sein. Wie kann ich überprüfen, ob ich einen Index habe? – tanvi