我无法理解Google Search API中的“限制”。
docs显示了此示例:
// 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。默认值:1,000
QueryOptions的限制描述为:
文档将限制解释为:最大文档数 返回结果。默认值:20最大:1000
我个人希望分页返回尽可能多的结果。注意:我使用的是光标。
这是否意味着即使QueryOptions
可以返回10000个结果,但是如果我想使用SortOptions
,我也只能获得1000个结果?
还是所有文档都只返回前1000个?
我担心一旦我用光标到达1000个文档的末尾,即使有1000多个文档,也不会再返回任何内容。
答案 0 :(得分:2)
您将始终只从排序集中获得前1000个文档,因为 QueryOptions和SortOptions(及其限制)控制提取结果流的不同阶段。
SortOptions.limit通知索引引擎在准备结果集时使用有限的文档集。但是当您从索引接收文档时使用QueryOptions.limit。
例如,假设下一种情况类似于RDBMS:您需要创建复杂的请求,并使用top / limit创建排序的视图。在这种情况下: