Solr(太阳黑子),最大结果超过30?

JP *_*shy 3 solr ruby-on-rails

我通过Sunspot使用Solr作为rails,但是我无法弄清楚如何返回30多个结果?

假设我有这个搜索块:

posts = Post.search do
  keywords('something')
end
Run Code Online (Sandbox Code Playgroud)

我如何确定太阳黑子应该返回所有的比赛,而不仅仅是30?

tjw*_*ace 15

你可以使用paginate:

posts = Post.search do
  keywords 'something'
  paginate :page => 1, :per_page => 100
end
Run Code Online (Sandbox Code Playgroud)

要更改默认结果数,请将以下内容添加到application.rb其自己的初始化文件中.

Sunspot.config.pagination.default_per_page = 30
Run Code Online (Sandbox Code Playgroud)

资源


out*_*ime 5

为了澄清,Solr 始终对结果进行分页 - 30是任意默认值,但始终有页长.如果你想要所有的结果,你可以设置一个非常高的页面长度,或者通过代码中的结果页面来组成一个包含所有结果的数组(后者可能更可取).