¿Cómo funciona la paginación en elasticsearch?

¿Cómo funciona la paginación en elasticsearch?
Si alguna vez ha usado kibana, notará que le permite ver información específica almacenada en un índice de elasticsearch. Sin embargo, dado que la mayoría de los índices contienen miles de registros, Kibana recorta el número disponible por página, lo que le permite navegar de una página a otra y ver los siguientes registros o anteriores.

En este tutorial, aprenderemos cómo paginar los resultados en Elasticsearch utilizando las API de paginación.

La siguiente captura de pantalla muestra cómo puede implementar la Pagination FR Elasticsearch para aplicaciones frontales.

En Elasticsearch, hay tres formas principales de realizar la paginación. Cada método tiene sus ventajas y desventajas. Por lo tanto, es esencial considerar la estructura de los datos almacenados en su índice.

En esta guía, aprenderemos cómo paginar utilizando los tres métodos principales. A saber:

  1. Paginación de y tamaño
  2. Paginación por desplazamiento
  3. Buscar después de la paginación.

Paginación de y tamaño

Cuando realice una solicitud de búsqueda en ElasticSearch, obtendrá los 10 mejores éxitos de la consulta coincidente. Si tiene una consulta de búsqueda que devuelve más documentos, puede usar los parámetros de SALE Y SALE.

El parámetro FOME se usa para definir el número de registros para omitir antes de mostrar los documentos anteriores. Piense en ello como el índice en el que Elasticsearch comienza a mostrar los resultados.

El parámetro de tamaño describirá el número máximo de registros que devolverá la consulta de búsqueda.

Los parámetros de Tamaño y el tamaño son muy aplicables cuando desea crear resultados pagados.

Considere la consulta a continuación que ilustra cómo usar los parámetros desde y de tamaño:

Get /kibana_sample_data_flights /_search

"De": 0,
"talla 5,
"consulta":
"fósforo":
"DestCityName": "Denver"


En la consulta anterior, buscamos los documentos que coinciden con criterios específicos. Luego usamos los parámetros de Tamaño y de tamaño para determinar cuántos registros se mostrará la consulta.

En nuestro ejemplo, comenzamos en los primeros documentos coincidentes. i.mi., Comenzamos en el índice 0.

También especificamos el número máximo de documentos para mostrar a 5.

Los resultados de la consulta son los siguientes:

Como puede ver en la respuesta anterior, tenemos siete golpes totales. Sin embargo, limitamos los documentos máximos para mostrar como 5.

Para ver los dos últimos documentos, podemos establecer el valor desde el valor a 5 como:

Get /kibana_sample_data_flights /_search

"De": 5,
"talla 5,
"consulta":
"fósforo":
"DestCityName": "Denver"


Paginación por desplazamiento

El siguiente tipo de paginación en Elasticsearch es la paginación por desplazamiento. Requiere un scroll_id único que determine el número de documentos que se muestra y la duración del contexto de búsqueda.

Considere la documentación para obtener más información sobre el contexto de búsqueda.

Para generar el scroll_id, haga una solicitud como se muestra a continuación:

Get /kibana_sample_data_flights /_search?desplazarse = 1m

"Tamaño": 20,
"consulta":
"fósforo":
"DestCityName": "Denver"


La consulta anterior debe devolver los resultados, incluido el scroll_id como se muestra:

El parámetro de desplazamiento en la consulta de búsqueda le dice a ElasticSearch que use 1 minuto como la duración del contexto de búsqueda.

Para usar la API de desplazamiento y ver el siguiente lote de 20 resultados, use el scroll_id como se muestra:

Get /_Search /Scroll

"Scroll": "1m",
"scroll_id":
"FGluy2X1ZGVFY29UDGV4DF91DWLKDXF1ZXJ5QW5KRMV0Y2GBFML5Z0HNX3QZVHFHTLBNU
lrlz0rrveeaaaaaabdsrzqundsq1zsrfjddxdtujmwvv9oyu5r "

La consulta debe devolver el siguiente lote de documentos que coincidan con la consulta especificada.

Para borrar un desplazamiento, use una solicitud de eliminación como:

Eliminar /_search /desplazarse

"scroll_id": "

La solicitud debe eliminar el desplazamiento según lo especificado por la identificación. Es bueno tener en cuenta que el contexto de búsqueda se borra automáticamente cuando expira la duración del conjunto.

Buscar después de la paginación

El otro método de paginación en ElasticSearch es buscar. La idea detrás de Search_After es recuperar valores después de un valor de clasificación.

Tomemos un ejemplo simple. Supongamos que queremos ver los documentos el DestCityName = Denver y el orden en función del precio del boleto.

Get /kibana_sample_data_flights /_search

"Tamaño": 2,
"consulta":
"fósforo":
"DestCityName": "Denver"


, "clasificar": [

"AvgticketPrice":
"Orden": "Desc"


]

Si ejecutamos la consulta anterior, deberíamos ver solo dos de los golpes totales, como se especifica por el parámetro de tamaño.

También nos proporcionará un valor de clasificación para cada documento como se muestra:

Podemos usar este valor de clasificación para obtener el próximo lote de documentos como:

Get /kibana_sample_data_flights /_search

"Tamaño": 2,
"consulta":
"fósforo":
"DestCityName": "Denver"

,
"Search_after": [940.3963]
, "clasificar": [

"AvgticketPrice":
"Orden": "Desc"


]

Luego usamos el parámetro Search_After y el ID de clasificación proporcionado en la última solicitud para ver el siguiente lote de documentos.

Clausura

Esta guía le brinda los conceptos básicos de los resultados de paginación en elasticsearch utilizando la paginación de y tamaño de tamaño, desplazamiento y búsqueda de paginación. Considere la documentación para explorar.