Комплексное руководство по разбиению на страницы поиска Azure: методы и примеры кода

В этой статье блога мы рассмотрим различные методы реализации нумерации страниц в Поиске Azure. Разбивка на страницы — важная функция для управления большими наборами результатов и улучшения пользовательского опыта в поисковых приложениях. Мы углубимся в различные методы и предоставим примеры кода, иллюстрирующие каждый метод.

  1. Разбиение на страницы со смещением и ограничением.
    Одним из распространенных подходов к разбивке на страницы является использование параметров «смещение» и «предел». «Смещение» определяет начальную точку набора результатов, а «предел» определяет количество извлекаемых элементов. Вот пример того, как реализовать это с помощью REST API поиска Azure:
int offset = 0;
int limit = 10;
var searchParameters = new SearchParameters()
{
    Skip = offset,
    Top = limit
};
var searchResults = searchIndexClient.Documents.Search<SearchResultModel>("query", searchParameters);
  1. Номера страниц и размера страниц.
    Другой метод нумерации страниц основан на номере и размере страницы. Вместо указания смещения вы указываете номер страницы и желаемое количество элементов на странице. Вот пример:
int pageNumber = 1;
int pageSize = 20;
var searchParameters = new SearchParameters()
{
    Skip = (pageNumber - 1) * pageSize,
    Top = pageSize
};
var searchResults = searchIndexClient.Documents.Search<SearchResultModel>("query", searchParameters);
  1. Разбиение на страницы токена продолжения.
    Разбиение на страницы токена продолжения предполагает использование токена, предоставленного службой поиска Azure, для получения следующей страницы результатов. Токен получается из ответа и передается в последующих запросах. Вот пример:
string continuationToken = null;
int pageSize = 50;
var searchParameters = new SearchParameters()
{
    Top = pageSize,
    ContinuationToken = continuationToken
};
var searchResults = searchIndexClient.Documents.Search<SearchResultModel>("query", searchParameters);
// Retrieve the continuation token from the response
continuationToken = searchResults.ContinuationToken;
  1. Разбиение на страницы с помощью курсора.
    Разбиение на страницы на основе курсора основано на уникальном идентификаторе, обозначающем позицию последнего выбранного элемента. Идентификатор используется для получения следующей страницы результатов. Для этого метода требуется сортируемое поле в индексе поиска. Вот пример:
string lastItemId = "unique_id";
int pageSize = 10;
var searchParameters = new SearchParameters()
{
    Filter = $"id > '{lastItemId}'",
    Top = pageSize,
    OrderBy = new List<string> { "id asc" }
};
var searchResults = searchIndexClient.Documents.Search<SearchResultModel>("query", searchParameters);

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

Не забудьте изменить примеры кода в соответствии с вашей конкретной реализацией и требованиями. Удачной нумерации страниц!