2012-04-13 6 views
1

Wie kann ich dieses Beispiel in eine Abfrage in der Webkonsole schreiben?Sortierung von neo4js Lucene-Indexabfragen in Cypher

hits = movies.query("title", new QueryContext("*").sort("title") 

Das ist, was ich bisher bekommen habe. Wie kann ich die Sortierung hinzufügen?

start a = node:movies("title:*") return a 

Antwort

1

Sie können sich nicht auf die Bestellung von Lucene verlassen. Cypher respektiert es möglicherweise nicht, wenn Sie Übereinstimmungen oder Aggregationen vornehmen.

Stattdessen schlage ich vor, verwenden Sie Cypher Bestellung:

Start a = Knoten: Filme ("title: *") geben einen Auftrag von a.title

+0

In genereal, es ist immer noch das gleiche Problem habe ich geschrieben gestern: http://stackoverflow.com/questions/10125672/neo4j-cypher-query-performance-via-rest-on-centered-nodes Ich habe 40k Knoten mit einer Art "Supernode" verbunden. Und ich möchte nur 10 der Knoten für die Paginierung zeigen. Mein Problem ist, dass die Reihenfolge nach Titel in diesem Fall sehr langsam ist. Die Idee war, Lucene die Sortierung durchführen zu lassen. Die standardmäßige Abfrage für die Chiffre dauert 3,5 Sekunden, um alle 40.000 Knoten zu ordern. Gibt es einen anderen Ansatz für diese Probleme? – Alebon

+0

Ja, ich denke, eine Lucene Sortierung könnte eine gute Idee sein. Sehen Sie http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-send-an-arbitrary-groovy-script---lucene-sortting für ein grooviges Beispiel ... –

+0

Danke Peter, ich werde versuchen, die Ergebnisse hier zu posten. – Alebon