Como funciona a paginação no Elasticsearch

Como funciona a paginação no Elasticsearch
Se você já usou o Kibana, notará que ele permite visualizar informações específicas armazenadas em um índice de elasticsearch. No entanto, como a maioria dos índices contém milhares de registros, Kibana apara o número disponível por página, permitindo que você navegue de página para página e visualize os registros seguintes ou anteriores.

Neste tutorial, aprenderemos a pagar resultados em Elasticsearch usando as APIs de paginação.

A captura de tela a seguir mostra como você pode implementar a paginação FR Elasticsearch para aplicações de front-end.

No Elasticsearch, existem três maneiras principais de realizar a paginação. Cada método tem suas vantagens e desvantagens. Portanto, é essencial considerar a estrutura dos dados armazenados em seu índice.

Neste guia, aprenderemos a pagar usando os três métodos principais. Nomeadamente:

  1. Da paginação de tamanho e tamanho
  2. Roll Paginação
  3. Pesquise após a paginação.

Da paginação de tamanho e tamanho

Quando você faz uma solicitação de pesquisa no Elasticsearch, você receberá os 10 principais hits da consulta correspondente. Se você tiver uma consulta de pesquisa que retorne mais documentos, você pode usar os parâmetros de tamanho e tamanho.

O parâmetro do parâmetro é usado para definir o número de registros para pular antes de exibir os documentos anteriores. Pense nisso como o índice em que o Elasticsearch começa a mostrar os resultados.

O parâmetro de tamanho descreverá o número máximo de registros que a consulta de pesquisa retornará.

Os parâmetros do e de tamanho são muito aplicáveis ​​quando você deseja criar resultados paginados.

Considere a consulta abaixo que ilustra como usar os parâmetros de tamanho e tamanho:

Get /kibana_sample_data_flights /_search

"de": 0,
"Tamanho": 5,
"consulta":
"corresponder":
"DestcityName": "Denver"


Na consulta acima, pesquisamos os documentos que correspondem aos critérios específicos. Em seguida, usamos os parâmetros de tamanho e tamanho para determinar quantos registros a consulta exibirá.

Em nosso exemplo, começamos nos primeiros documentos correspondentes. eu.e., Começamos no índice 0.

Também especificamos o número máximo de documentos a serem exibidos para 5.

Os resultados da consulta são os seguintes:

Como você pode ver na resposta acima, temos sete hits totais. No entanto, limitamos os documentos máximos a serem mostrados como 5.

Para visualizar os dois últimos documentos, podemos definir o valor de 5 como:

Get /kibana_sample_data_flights /_search

"de": 5,
"Tamanho": 5,
"consulta":
"corresponder":
"DestcityName": "Denver"


Roll Paginação

O próximo tipo de paginação em elasticsearch é a paginação de rolagem. Requer um scroll_id exclusivo que determina o número de documentos para mostrar e a duração do contexto de pesquisa.

Considere a documentação para saber mais sobre o contexto de pesquisa.

Para gerar o scroll_id, faça uma solicitação como mostrado abaixo:

Get /kibana_sample_data_flights /_search?rolagem = 1m

"Tamanho": 20,
"consulta":
"corresponder":
"DestcityName": "Denver"


A consulta acima deve retornar os resultados, incluindo o scroll_id como mostrado:

O parâmetro de rolagem na consulta de pesquisa diz ao Elasticsearch para usar 1 minuto como duração do contexto de pesquisa.

Para usar a API de rolagem e visualizar o seguinte lote de 20 resultados, use o scroll_id como mostrado:

Get /_search /roll

"Scroll": "1m",
"scroll_id":
"FGluy2x1ZGVFy29UDGV4DF91DWLKDXF1ZXJ5QW5KRMV0Y2GBFML5Z0HNX3QZVHFHTLBNU
lrlz0rrveaaaaaaaabdsrzqundsq1zsrfjddxdtujmwvvv9oyu5r "

A consulta deve retornar o próximo lote de documentos que correspondem à consulta especificada.

Para limpar um rolo, use uma solicitação de exclusão como:

Excluir /_search /roll

"scroll_id": "

A solicitação deve remover o rolo especificado pelo ID. É bom observar que o contexto de pesquisa é limpo automaticamente quando a duração do conjunto expira.

Pesquise após a paginação

O outro método de paginação no Elasticsearch é pesquisador. A idéia por trás de search_after é recuperar valores após um valor de classificação.

Vamos dar um exemplo simples. Suponha que queremos visualizar os documentos o DestcityName = Denver e classificar com base no preço do ingresso.

Get /kibana_sample_data_flights /_search

"Tamanho": 2,
"consulta":
"corresponder":
"DestcityName": "Denver"


, "organizar": [

"Avgticketprice":
"Ordem": "Desc"


]

Se executarmos a consulta acima, devemos ver apenas dois dos hits totais, conforme especificado pelo parâmetro de tamanho.

Também nos fornecerá um valor de classificação para cada documento, como mostrado:

Podemos usar esse valor de classificação para buscar o próximo lote de documentos como:

Get /kibana_sample_data_flights /_search

"Tamanho": 2,
"consulta":
"corresponder":
"DestcityName": "Denver"

,
"Search_after": [940.3963]
, "organizar": [

"Avgticketprice":
"Ordem": "Desc"


]

Em seguida, usamos o parâmetro Search_after e o ID de classificação fornecido na última solicitação para visualizar o próximo lote de documentos.

Fechamento

Este guia oferece o básico de resultados de pagina em elasticsearch useling used e size paginação, rolagem e search_after paginação. Considere a documentação para explorar.