En esta breve guía, veremos cómo ordenar los resultados de la consulta en Elasticsearch.
Uso básico
Puede ordenar los resultados utilizando un método de línea en una consulta. Por ejemplo:
Get /kibana_sample_data_flights /_search?Q= DestCityName: Denver & Sort = AVGTicketPriceEn la consulta de ejemplo anterior, obtenemos todos los documentos en los que el nombre de campo es igual a Denver y luego ordenamos los resultados en el precio de AVGticket.
La consulta resultante debe incluir los documentos donde la ciudad es Denver, con los precios de las entradas ordenados en orden ascendente.
El ejemplo de salida es como se muestra:
Aunque el método de una línea puede ser útil cuando necesita realizar un tipo rápido, no es muy legible y puede complicarse cuando necesita ordenar múltiples campos.
Para resolver esto, puede usar el método recomendado de consulta Elasticsearch. Por ejemplo, podemos escribir la consulta anterior como:
Get /kibana_sample_data_flights /_searchEsta consulta funciona de manera similar al método de una línea que se muestra arriba. Sin embargo, es más descriptivo y es más legible.
Ordenar por orden ascendente
Para cambiar por orden inverso, puede cambiar el orden de ASC a DESC, que ordenará los valores de los más altos a los más bajos como se muestra:
Get /kibana_sample_data_flights /_searchLa salida de ejemplo es como se muestra:
Clasificación de distancia de geo
Elasticsearch le permite ordenar por geo-información utilizando el parámetro _geo_distance. Por ejemplo, considere la siguiente consulta:
Get /kibana_sample_data_flights /_searchLa consulta anterior debe devolver los registros donde el país de destino es igual a los EE. UU. Y la ubicación está dentro del rango de latitud y longitud especificados.
Ordenar por tipo de texto
La clasificación no se limita a los valores numéricos, se clasifica por texto como:
Get /kibana_sample_data_flights /_searchConclusión
En este tutorial, cubrimos cómo ordenar los resultados de una consulta de Elasticsearch utilizando la palabra clave de clasificación. Consulte la documentación para obtener más información.