Ограничения QueryOptions и SortOptions API поиска Google

У меня проблемы с пониманием "ограничений" в Google Search API.

Документы показывают этот пример:

  // Build the SortOptions with 2 sort keys
  SortOptions sortOptions =
      SortOptions.newBuilder()
          .addSortExpression(
              SortExpression.newBuilder()
                  .setExpression("price")
                  .setDirection(SortExpression.SortDirection.DESCENDING)
                  .setDefaultValueNumeric(0))
          .addSortExpression(
              SortExpression.newBuilder()
                  .setExpression("brand")
                  .setDirection(SortExpression.SortDirection.DESCENDING)
                  .setDefaultValue(""))
          .setLimit(1000)
          .build();

  // Build the QueryOptions
  QueryOptions options =
      QueryOptions.newBuilder()
          .setLimit(25)
          .setFieldsToReturn("model", "price", "description")
          .setSortOptions(sortOptions)
          .build();

Предел для SortOptions описывается как:

Максимальное количество объектов для оценки и / или сортировки. Не может быть больше 10 000 По умолчанию: 1000

Предел для QueryOptions описывается как:

Документация объясняет лимит как: максимальное количество документов для возврата в результатах. По умолчанию: 20 Макс.: 1000

Я лично хочу, чтобы как можно больше результатов возвращалось с нумерацией страниц. Примечание: я использую курсор.

Означает ли это, что если я хочу использовать QueryOptions Я ограничен 1000 результатов, хотя SortOptions может вернуть 10000 результатов?

Или все документы будут возвращены только с первой отсортированной 1000?

Я обеспокоен тем, что, как только я доберусь до конца 1000 документов с моим курсором, больше не будет возвращено, даже если есть более 1000 документов.

1 ответ

Решение

Вы всегда получите только первые 1000 документов из отсортированного набора, потому что QueryOptions и SortOptions (и их ограничения) контролируют различные этапы извлечения потока результатов.

SortOptions.limit уведомляет механизм индексирования об использовании ограниченного набора документов при подготовке результирующего набора. Но QueryOptions.limit используется при получении документов из индекса.

Например, представьте следующую ситуацию, аналогичную СУБД: вам нужно создать сложный запрос, и вы создадите отсортированное представление с верхним / нижним пределом. В этом случае:

  • SortOptions.limit - используется при создании представления;
  • QueryOptions.limit - когда вы выбираете данные из представления.
Другие вопросы по тегам