Ограничения QueryOptions и SortOptions API поиска Google - PullRequest
0 голосов
/ 03 сентября 2018

У меня проблемы с пониманием "ограничений" в 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 Ответ

0 голосов
/ 03 сентября 2018

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

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

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

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