Wie sortiere ich Elasticsearch??

Wie sortiere ich Elasticsearch??
Sie können Elasticsearch -Ergebnisse mit dem Keyword sortieren. Die Sortierabfrage erfordert, dass Sie ein Feld bereitstellen, nach dem sortiert werden soll. ElasticSearch unterstützt keine Sortierung auf Feldern des Typtextes.

In diesem kurzen Leitfaden werden wir uns ansehen, wie die Ergebnisse der Abfragen in Elasticsearch sortiert werden können.

Grundnutzung

Sie können die Ergebnisse mit einer Zeilenmethode in einer Abfrage sortieren. Zum Beispiel:

Get /kibana_sample_data_flights /_search?Q= DestcityName: Denver & sort = avgTicketprice

In der obigen Beispielabfrage holen wir alle Dokumente, in denen der Felddestkotschaftsame Denver entspricht, und sortieren dann die Ergebnisse am AvGticket -Preis.

Die resultierende Abfrage sollte die Dokumente enthalten, in denen die Stadt Denver ist, wobei die Ticketpreise in aufsteigender Reihenfolge sortiert sind.

Beispielausgabe ist wie gezeigt:

Obwohl die One-Line-Methode hilfreich sein kann, wenn Sie eine schnelle Sortierung ausführen müssen, ist sie nicht sehr lesbar und kann kompliziert werden, wenn Sie mehrere Felder sortieren müssen.

Um dies zu lösen, können Sie die empfohlene Elasticsearch -Abfragemethode verwenden. Zum Beispiel können wir die obige Abfrage als:

Get /kibana_sample_data_flights /_search

"Anfrage":
"passen":
"DestcityName": "Denver"


, "sortieren": [

"AvGticketprice":
"Reihenfolge": "ASC"


]

Diese Abfrage funktioniert ähnlich wie die oben gezeigte Einzeilungsmethode. Es ist jedoch beschreibender und lesbarer.

Sortieren Sie durch aufsteigender Reihenfolge

Um sich nach umgekehrter Reihenfolge zu ändern, können Sie die Reihenfolge von ASC auf Desc ändern, wodurch die Werte von den höchsten auf die niedrigsten sortiert werden, wie gezeigt:

Get /kibana_sample_data_flights /_search

"Anfrage":
"passen":
"DestcityName": "Denver"


, "sortieren": [

"AvGticketprice":
"Order": "Desc"


]

Die Beispielausgabe ist wie gezeigt:

Geo -Distanzsortierung

Mit Elasticsearch können Sie nach der Geo-Information mit dem Parameter _GEO_Distance sortiert werden. Betrachten Sie beispielsweise die folgende Abfrage:

Get /kibana_sample_data_flights /_search

"Anfrage":
"passen":
"Destcountry": "uns"

,
"sortieren": [

"_geo_distance":
"OriginLocation":
"lat": 30,
"Lon": -103
,
"Order": "Desc"


]

Die obige Abfrage sollte die Aufzeichnungen zurückgeben, in denen das Zielland gleich den USA ist und der Standort innerhalb des angegebenen Breiten- und Längengradbereichs liegt.

Sortieren Sie nach Texttyp

Die Sortierung ist nicht auf numerische Werte beschränkt, sondern nach Text sortieren wie:

Get /kibana_sample_data_flights /_search

"Anfrage":
"passen":
"DestcityName": "Sydney"

,
"sortieren": [

"Träger":
"Order": "Desc"


]

Abschluss

In diesem Tutorial haben wir mithilfe des Sortierschlüsselworts die Sortierung von Ergebnissen aus einer Elasticsearch -Abfrage behandelt. Überprüfen Sie die Dokumentation, um mehr zu erfahren.