【问题标题】:Sunspot solr search, how to return all records at once?Sunspot solr search,如何一次返回所有记录?
【发布时间】:2011-12-29 10:13:12
【问题描述】:

我在我的 rails 应用程序中通过 sunspot 使用 solr,我需要返回默认设置的 30 多条记录。我可以按照 Sunspot solr 但我不想为数据分页。我想在一个页面中显示所有数据,而不考虑行。提供硬编码值也不是我正在寻找的可能的解决方案。

【问题讨论】:

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


    【解决方案1】:

    Solr 总是分页,所以看起来无法通过 Sunspot 禁用分页 (https://groups.google.com/forum/#!topic/ruby-sunspot/kVKfsrDpokc)。我唯一能想到的就是在搜索之前获取模型的记录数,然后将 per_page 变量设置为该数字,这样就可以保证只返回一页。像这样的:

    count = Service.count
    @search = Service.search do 
        keywords(params[:search])
        paginate :page => 1, :per_page => count
    end
    

    【讨论】:

    • yaa .. 我也有同样的想法并保留了最后的选项,但由于无法获得任何其他解决方案而不得不实施。
    • 小心。然而per_page: 10**10 给出了一个错误(超过最大值,我猜),所以可以使用静态per_page: 10**9 代替Service.count 每次
    • 执行两次查询 Service.search(....).total 并根据页面参数传递总数
    猜你喜欢
    • 2013-01-01
    • 2012-05-23
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多