Elasticsearch: Пагинация

В этой статье вы узнаете, как сделать пагинацию в Elasticsearch.

Elasticsearch

В предыдущей статье я представил параметр size, который я также буду использовать для постраничного просмотра результатов поиска. В то время как параметр size определяет, сколько документов должно быть возвращено в результатах, параметр from определяет, с какого индекса документов начинать поиск. Важно отметить, что этот индекс начинается с нуля, точно так же, как при работе с массивами в языке программирования. Поэтому, чтобы начать с первого индекса, нужно указать ноль, для второго документа - единицу и т.д. По умолчанию параметр from имеет нулевое значение.

Чтобы продемонстрировать, как постранично просматривать результаты поиска, я просто буду искать макароны, как обычно.

Я указал размер страницы как 5. Я не добавил параметр from, потому что по умолчанию нулевое значение - это то, что мне нужно для первой страницы результатов, но я с таким же успехом мог бы указать нулевое значение явно, если бы захотел. Это первая страница результатов поиска, поэтому перейдем к самому интересному и посмотрим, как можно получить вторую страницу.

Помните, что первый запрос вернул документы с индексами от 0 до 4 из-за параметра size, равного 5, поэтому для получения следующей страницы я установил параметр from равным 5. Чтобы получить третью страницу, я могу просто установить параметр 10.

Вот так все просто! Концепция та же самая при использовании DSL запроса, который я вам сейчас покажу. Итак, я собираюсь использовать тот же пример и написать эквивалентный запрос с помощью query DSL.

Вы видели этот запрос в предыдущей статье, поэтому здесь нет ничего нового. Этот запрос извлекает первую страницу результатов, поскольку индекс первого документа по умолчанию равен нулю. Как вы уже догадались, я могу добавить свойство from, равное 5, чтобы получить вторую страницу.

А чтобы получить третью страницу результатов, я просто увеличиваю свойство from до 10.

Если вы знакомы с реляционными базами данных, такими как MySQL, то можете считать, что эти параметры аналогичны ключевым словам LIMIT и OFFSET.

Вот и все. Теперь вы должны знать, как постранично просматривать результаты поиска, что можно использовать, например, для создания страниц результатов поиска для веб-приложения.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий