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.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay