DEV Community

Cover image for #007: Paginando resultados na pesquisa do Elasticsearch
Bruno Flegler Dal'Col
Bruno Flegler Dal'Col

Posted on

#007: Paginando resultados na pesquisa do Elasticsearch

Como mencionado no artigo #003: Buscando todos os documentos no Elasticsearch, por padrão ele retorna 10 documentos. Hoje iremos aprender a paginar os resultados.

Vamos usar os parâmetros size que é o total de registros que será retornado e o from que é a quantidade de documentos que serão ignorados, começando como 0. Juntos, as duas propriedades formam a paginação. Dessa forma temos na primeira requisição:

GET customers/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 10
}
Enter fullscreen mode Exit fullscreen mode

Na segunda requisição será from + size, igual à 0 + 10 = 10:

GET customers/_search
{
  "query": {
    "match_all": {}
  },
  "from": 10,
  "size": 10
}
Enter fullscreen mode Exit fullscreen mode

Na terceira requisição será from + size, igual à 10 + 10 = 20:

GET customers/_search
{
  "query": {
    "match_all": {}
  },
  "from": 20,
  "size": 10
}
Enter fullscreen mode Exit fullscreen mode

E assim por diante, porém por padrão a soma de from + size não pode ultrapassar 10000. É aconselhável usar search_after para essa situação, veremos nos próximos artigos.

⚠️ Atenção:

Evite usar o paginação com muita profundidade, ou seja, o from com um valor muito alto ou solicitar muitos resultados de uma vez. Os registros das páginas anteriores são mantidos em mémoria e podem aumentar o consumo de mémoria e CPU, resultando em degradação do desempenho ou falhas de nó.

Sua vez de praticar, te vejo em breve.

Top comments (0)