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 = AvgTicketPriceNella 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 /_searchQuesta 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 /_searchL'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 /_searchLa 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 /_searchConclusione
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ù.