如果没有指定限制,太阳镜(和solr)默认返回10个结果。我知道我可以使用$query->setRow(25)指定一个限制;但是我需要返回所有结果(无论多大)。有没有一种方法可以在不将任意大的数字传递给setRows()的情况下指定这一点?我在文件里什么也没看到.
发布于 2013-09-25 04:14:31
我在支持论坛上发布了这篇文章,开发者建议使用PreFetchIterator插件。
PreFetchIterator插件
发布于 2013-09-23 18:57:15
这里有些东西可能会启发,实际上wiki回答了这个问题。您可能最好使用一个大的数字,以获得您的行,根据文档。
来自这里
我怎么才能把所有匹配的文件拿回来?如何返回无限行数?
在大多数情况下,这是不切实际的。人们通常只想在他们知道自己所处理的索引的大小保证结果集总是小到可以以可管理的数量传输的情况下才这样做--但是如果是这样的话,只需指定您认为“可管理的数量”作为您的行的参数,并得到两个世界的最佳结果(当您的假设正确时,所有的结果都是正确的,如果结果是错误的,则对结果大小设置一个理智的上限)。
此外,这也是setRows文档中提到的这里
行
此参数用于对查询的结果进行分页。它指定来自完整结果集的最大文档数,以便为每个请求返回到客户端。您可以将其视为显示在页面中的最大结果数。
默认值为"10",如果未指定参数,则使用该值。如果您想让Solr返回来自查询的所有可能的结果而没有上限,请指定行为10000000或其他比预期的行数高得离谱的大值。
关于这个这里有一个很好的讨论
https://stackoverflow.com/questions/18966463
复制相似问题