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

パラメータを調整するのではなく、次の行を追加するだけです。

order_by :random
rows :2

ここを参照してください: 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 に答える