rails solr search 限制总搜索结果/获得固定数量的结果

Posted

技术标签:

【中文标题】rails solr search 限制总搜索结果/获得固定数量的结果【英文标题】:rails solr search limit total search results / get fixed number of results 【发布时间】:2012-11-30 12:20:24 【问题描述】:

我正在尝试执行搜索,对结果进行随机排序,并且只返回一些结果,而不是所有匹配项。限制(2)之类的东西 我试过使用 Solr 参数“行”,但这似乎没有任何作用:

@featured_articles = Article.search do 
  with(:is_featured, true)
  order_by :random
  adjust_solr_params do |params|
    params[:rows] = 2
  end
end

@featured_articles.total 应该是 2,但它返回超过 2

如何获得随机固定数量的结果?

【问题讨论】:

【参考方案1】:

不用调整参数,直接加一行:

order_by :random
rows :2

请看这里:http://wiki.apache.org/solr/CommonQueryParameters

【讨论】:

【参考方案2】:

所有 ruby​​ 示例..

@featured_articles = Article.search do 
  with(:is_featured, true)
  order_by :random
end.shuffle.take(2)

如果您不需要 Solr,取决于您的数据库,您也可以这样做:Article.where(is_featured: true).order("RANDOM()").limit(2)

【讨论】:

以上是关于rails solr search 限制总搜索结果/获得固定数量的结果的主要内容,如果未能解决你的问题,请参考以下文章