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 限制总搜索结果/获得固定数量的结果的主要内容,如果未能解决你的问题,请参考以下文章

Rails 应用程序:Solr 在执行搜索时抛出 RSolr::Error::Http - 404 Not Found

利用Solr服务建立的站内搜索雏形

搜索多个列 - Rails

使用 rails 将搜索结果发送到 json

Lucene、Elasticsearch、Solr区别

从 Ruby on Rails 应用程序向 Yahoo Web Search 提交搜索查询