访问太阳黑子solr

时间:2015-05-07 13:52:49

标签: ruby-on-rails-3.2 sunspot sunspot-solr

我想获得solr搜索的所有结果。

考虑这个例子:

@search = Post.search do
  with(:blog_id, 1)
  fulltext("pizza")
  paginate :page => params[:page], :per_page => 50
end

@posts = @search.results
@rows_num = @search.total

返回的总行数为250.默认情况下,每页显示50行。

到目前为止,一切都很好。

我现在需要获取所有搜索结果(250个结果)以进行进一步处理。 @posts仅包含页面上显示的50行。

@posts.all似乎不起作用。

如何访问太阳黑子solr搜索的整个结果集?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

虽然我不知道Ruby或Sunspot,但在您的查询中有:per_page参数,其值为50。根据太阳黑子API文档,在solr HTTP REST API上,这应该与rows = x param等效。基本上这是一个参数,它告诉单个查询返回多少结果。如果它的值为1000000,它将始终返回查询中的所有结果,最多可返回一百万,无论找到多少。

使用更高限制进行第二次查询以获取所有文档。选择一个你可以处理的上限,因为一些查询可以匹配并返回整个索引,给出足够高的行值。