Come mi ordino in Elasticsearch?

Come mi ordino in Elasticsearch?
È possibile ordinare i risultati di ElasticSearch utilizzando la parola chiave Ordina. La query di ordinamento richiede di fornire un campo in base al quale ordinare. Elasticsearch non supporta l'ordinamento su campi di tipo di tipo.

In questa breve guida, esamineremo come ordinare i risultati delle query in Elasticsearch.

Uso di base

È possibile ordinare i risultati utilizzando un metodo di riga in una query. Per esempio:

Get /kibana_sample_data_flights /_search?Q= DestCityName: Denver & Ordy = AvgTicketPrice

Nella query di esempio sopra, recuperiamo tutti i documenti in cui il campo di campo di campo è uguale a Denver e quindi ordiniamo i risultati sul prezzo AvgTicket.

La query risultante dovrebbe includere i documenti in cui la città è Denver, con i prezzi dei biglietti ordinati in ordine crescente.

L'output di esempio è come mostrato:

Sebbene il metodo a una riga possa essere utile quando è necessario eseguire un ordinamento rapido, non è molto leggibile e può essere complicato quando è necessario ordinare più campi.

Per risolvere questo problema, è possibile utilizzare il metodo di query elasticsearch consigliato. Ad esempio, possiamo scrivere la query sopra come:

Get /kibana_sample_data_flights /_search

"query":
"incontro":
"DestcityName": "Denver"


, "ordinare": [

"Avgticketprice":
"Ordine": "ASC"


"

Questa query funziona in modo simile al metodo a una riga mostrato sopra. Tuttavia, è più descrittivo ed è più leggibile.

Ordina per ordine ascendente

Per cambiare per ordine inverso, è possibile modificare l'ordine da ASC a DESS, che ordinerà i valori dal più alto al più basso come mostrato:

Get /kibana_sample_data_flights /_search

"query":
"incontro":
"DestcityName": "Denver"


, "ordinare": [

"Avgticketprice":
"Ordine": "Desc"


"

L'output di esempio è come mostrato:

Ordinamento della distanza geo

ElasticSearch consente di ordinare per geo-informazione usando il parametro _GEO_Distance. Ad esempio, considera la seguente query:

Get /kibana_sample_data_flights /_search

"query":
"incontro":
"DestCountry": "Us"

,
"ordinare": [

"_geo_distance":
"OriginLocation":
"Lat": 30,
"LON": -103
,
"Ordine": "Desc"


"

La query sopra dovrebbe restituire i record in cui il paese di destinazione è uguale agli Stati Uniti e la posizione è all'interno della latitudine e della longitudine specificate.

Ordina per tipo di testo

L'ordinamento non è limitato ai valori numerici, ordini per testo come:

Get /kibana_sample_data_flights /_search

"query":
"incontro":
"DestcityName": "Sydney"

,
"ordinare": [

"Carrier":
"Ordine": "Desc"


"

Conclusione

In questo tutorial, abbiamo trattato come ordinare i risultati da una query ElasticSearch usando la parola chiave di ordinamento. Controlla la documentazione per saperne di più.