Продолжение ответов частичного поиска
Иногда Поиск Azure не может вернуть все запрошенные результаты в одном поисковом ответе.Это может произойти по разным причинам, например, когда запрос запрашивает слишком много документов, не указав $top
или указав слишком большое значение для $top
.В таких случаях Поиск Azure будет включать аннотацию @odata.nextLink
в теле ответа, а также @search.nextPageParameters
, если это был запрос POST.Вы можете использовать значения этих аннотаций для формулирования другого поискового запроса, чтобы получить следующую часть поискового ответа.Это называется продолжением исходного поискового запроса, а аннотации обычно называются токенами продолжения .См. Пример в ответе ниже для получения подробной информации о синтаксисе этих аннотаций и о том, где они появляются в теле ответа.
Причины, по которым поиск Azure может возвращать маркеры продолжения, зависят от реализации и могут изменяться.Надежные клиенты всегда должны быть готовы обрабатывать случаи, когда возвращается меньше документов, чем ожидалось, и для продолжения поиска документов включен токен продолжения.Также обратите внимание, что для продолжения необходимо использовать тот же метод HTTP, что и в исходном запросе.Например, если вы отправили запрос GET, любые отправленные вами запросы продолжения должны также использовать GET (и аналогично для POST).
Примечание
Цель @odata.nextLink
и @search.nextPageParameters
предназначены для защиты службы от запросов, которые запрашивают слишком много результатов, а не для обеспечения общего механизма подкачки.Если вы хотите просмотреть результаты, используйте $top
и $skip
вместе.Например, если вы хотите страницы размером 10, ваш первый запрос должен иметь $top=10
и $skip=0
, второй запрос должен иметь $top=10
и $skip=10
, третий запрос должен иметь $top=10
и $skip=20
,и т. д.