我无法理解Google搜索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
我限制为1000个结果,即使SortOptions
可以返回10000个结果?
或者只返回前1000个所有文件?
我担心一旦用光标到达1000个文档的末尾,即使文档超过1000个,也不会再返回。
您将始终只从排序集中获取前1000个文档,因为QueryOptions和SortOptions(及其限制)控制提取结果流的不同阶段。
SortOptions.limit在准备结果集时通知索引引擎使用有限的文档集。但是当您从索引接收文档时使用QueryOptions.limit。
例如,想象下一种情况与RDBMS类似:您需要创建复杂的请求,并使用top / limit创建排序视图。在这种情况下: