2016-04-11 22 views
0

Ist es möglich, eine Art verschachtelte Sortierung/Größe in elasticsearch zu tun? Ich versuche, alle Ergebnisse für die Abfrage zu finden (sortiert nach Punkten, so dass die besten Übereinstimmungen zuerst angezeigt werden), schränke die Ausgabe auf 200 Ergebnisse ein und wende dann Sortierung/Paging an.Elasticsearch Größe vor Sortierung

Beispiel: Benutzer sucht nach Produkt. Die Suche findet 10 000 übereinstimmende Produkte, aber mit unterschiedlichen Werten (wir verwenden eine sehr breite Suche, so dass wir immer viele Ergebnisse erhalten). Wir nehmen 200 am besten übereinstimmende Einträge, wenden benutzerdefinierte Sortierung an (z. B. könnte der Benutzer die Ergebnisse nach Kategorie sortieren wollen) und werden als Liste mit 10 Ergebnissen/Seite angezeigt.

Also im Grunde muss ich folgendes tun:

1. Perform search for product named "abc" 
2. Sort results by score 
3. Take first 200 results 
4. Sort these 200 results by category 
5. Take first 10 results to display them on first page 

Antwort

0

Scheint, wie rescoring wird genau das tun, was Sie beschrieben haben.

+0

Danke für die Antwort! Es scheint, dass die erneute Sortierung nicht zum Sortieren verwendet werden kann. Ich habe [einen Artikel] gefunden (http://elasticsearchserverbook.com/elasticsearch-0-90-using-rescore/) der besagt: 'Manchmal wollen wir Ergebnisse zeigen, wo die Reihenfolge der ersten Dokumente auf der Seite ist von den zusätzlichen Regeln betroffen. Leider kann dies durch die Rescore-Funktionalität nicht erreicht werden. ' – emsi

+0

@emsi Ja, aber Sie können die Ergebnisse nach Kategorien rescoreieren, was Ihnen das gleiche Ergebnis wie die Sortierung nach Kategorie liefert. – DrTyrsa

Verwandte Themen