5

我正在尝试执行搜索,随机排序结果,并且只返回一些结果,而不是所有匹配项。像 limit(2) 我试过使用 Solr 参数'rows',但这似乎没有做任何事情:

@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

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

4

2 回答 2

1

Rather than adjusting params, just add a line:

order_by :random
rows :2

See here: http://wiki.apache.org/solr/CommonQueryParameters

于 2012-12-14T18:31:34.860 回答
0

所有红宝石示例..

@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)

于 2012-12-21T14:33:09.943 回答