2016-04-14 10 views
0

so habe ich seit einiger Zeit versucht, die Graphity auf neo4j imperime, aber ich kann einen Weg finden, um die Abfragen zu bauen, hat jemand irgendwelche führt?neo4j graphity wie zu implementieren

zum Beispiel auf dem Dokument neo4j für Graphity gibt es eine Abfrage, nur um das erste Element auf der Kette zu erhalten. Wie bekomme ich den zweiten?

und warum gibt es eine order by in der Abfrage? soll dieser Algorithmus das nicht beseitigen? Hier

ist die Abfrage:

MATCH p=(me { name: 'Jane' })-[:jane_knows*]->(friend),(friend)-[:has]->(status) RETURN me.name, friend.name, status.name, length(p) ORDER BY length(p)

Antwort

1

[UPDATED]

Das ist eine variable-length Abfrage (man beachte die * in der Beziehung Muster), und es wird alle Elemente in der Kette N Ergebniszeilen (wobei N die Länge der Kette ist). Der Pfad jeder Ergebniszeile enthält den Pfad der vorherigen Zeile (falls es eine vorherige Zeile gab) und das nächste Element in der Kette. Und da jede Zeile eine andere Pfadlänge hat, ist eine Sortierung nach der Pfadlänge sinnvoll.

Wenn Sie die Namen sehen wollen (um) von alle der Status für jeden Freund, sollte diese Abfrage das tun:

MATCH p=(me { name: 'Jane' })-[:jane_knows*]->(friend) 
WITH me, friend, LENGTH(p) AS len 
MATCH (friend)-[:has|next*]->(status) 
RETURN me.name, friend.name, COLLECT(status.name), len 
ORDER BY len; 

mit den gleichen Daten wie in der verknüpften Beispiel das Ergebnis ist:

+-----------------------------------------------------+ 
| me.name | friend.name | COLLECT(status.name) | len | 
+-----------------------------------------------------+ 
| "Jane" | "Bill"  | ["Bill_s1","Bill_s2"] | 1 | 
| "Jane" | "Joe"  | ["Joe_s1","Joe_s2"] | 2 | 
| "Jane" | "Bob"  | ["Bob_s1"]   | 3 | 
+-----------------------------------------------------+ 
+0

aber was ist, wenn ich den zweiten Grad der Benutzerstatus (die nächste Beziehung in der Frage Link) möchte? – tubu13

+0

Jede Ergebniszeile enthält auch Informationen für jeden Status. Sehen Sie sich die Ergebnisse auf dieser verknüpften Seite an. – cybersam

+0

Ich sehe keine _s2 im Ergebnis – tubu13