В этой статье блога мы рассмотрим различные методы реализации нумерации страниц в Поиске Azure. Разбивка на страницы — важная функция для управления большими наборами результатов и улучшения пользовательского опыта в поисковых приложениях. Мы углубимся в различные методы и предоставим примеры кода, иллюстрирующие каждый метод.
- Разбиение на страницы со смещением и ограничением.
Одним из распространенных подходов к разбивке на страницы является использование параметров «смещение» и «предел». «Смещение» определяет начальную точку набора результатов, а «предел» определяет количество извлекаемых элементов. Вот пример того, как реализовать это с помощью 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);
- Номера страниц и размера страниц.
Другой метод нумерации страниц основан на номере и размере страницы. Вместо указания смещения вы указываете номер страницы и желаемое количество элементов на странице. Вот пример:
int pageNumber = 1;
int pageSize = 20;
var searchParameters = new SearchParameters()
{
Skip = (pageNumber - 1) * pageSize,
Top = pageSize
};
var searchResults = searchIndexClient.Documents.Search<SearchResultModel>("query", searchParameters);
- Разбиение на страницы токена продолжения.
Разбиение на страницы токена продолжения предполагает использование токена, предоставленного службой поиска 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;
- Разбиение на страницы с помощью курсора.
Разбиение на страницы на основе курсора основано на уникальном идентификаторе, обозначающем позицию последнего выбранного элемента. Идентификатор используется для получения следующей страницы результатов. Для этого метода требуется сортируемое поле в индексе поиска. Вот пример:
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. В этой статье мы рассмотрели несколько методов, в том числе разбиение на страницы со смещением и ограничением, разбиение на страницы по номеру и размеру страницы, разбиение на страницы с токеном продолжения и разбиение на страницы с помощью курсора. Внедрив эти методы, вы сможете улучшить взаимодействие с пользователем и эффективно обрабатывать большие наборы результатов в своих поисковых приложениях.
Не забудьте изменить примеры кода в соответствии с вашей конкретной реализацией и требованиями. Удачной нумерации страниц!