2016-05-05 9 views
-1

Ich möchte die Dokumente zuerst nach Relevanz Punktzahl sortieren, und dann nach Entfernung Band, wenn die Punktzahl die gleiche ist, dann um ein Datum.Sortiert nach Punktzahl, Distanzband und Datum in Elastische Suche

Für die Dokumente mit der gleichen Punktzahl würde ich gerne "distance banding" anwenden - die Dokumente innerhalb von 5 Meilen kommen zuerst, gefolgt von 5-10 mi Dokumenten, gefolgt von 10-15mi, 15-25 mi, 25 -50 mi, 50 + mi. Innerhalb jeder Bande (0-5), (5-10) usw. kommt das neueste Dokument zuerst.

Wie würden Sie vorschlagen, hier eine Entfernungsband zu erstellen?

Antwort

0

Was Sie versuchen _score auf querys zu ist Multi-Level-Sortierung der Standardsortierreihenfolge genannt wird, Filter nicht Standard-Auftrag haben, können Sie die Reihenfolge mit der „Art“ Eigenschaft überschreiben

"sort": [ 
     { "_score": { "order": "desc" }}, 
     { "distance": { "order": "desc" }} 
    ] 

Heres ist die multi-level sorting Dokumentation

+1

Ich meinte das Entfernungsband, nicht nur _geo_distance. Wie behandeln Dokumente innerhalb von 0-5 mi als gleich, 5-10m als gleich? – Aliya