2012-12-12 13 views
5

Próbuję przeprowadzić wyszukiwanie, sortować wyniki losowo i zwracać tylko pewną liczbę wyników, nie wszystkie dopasowania. Coś takiego limitu (2) Próbowałem przy użyciu Solr param „wiersze”, ale to nie wydają się nic zrobić:szyny solr search limit całkowity wynik wyszukiwania/uzyskaj stałą liczbę wyników

@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 powinny być 2, ale zwraca więcej niż 2

Jak uzyskać losową ustaloną liczbę wyników?

Odpowiedz

0

Wszystko rubin przykład ..

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

Jeśli nie trzeba Solr, zależnie w bazie danych można również: Article.where(is_featured: true).order("RANDOM()").limit(2)

Powiązane problemy