2015-05-07 3 views
2

Я хочу получить все результаты поиска solr.Доступ ко всему набору результатов в sunspot solr

Рассмотрим следующий пример:

@search = Post.search do 
    with(:blog_id, 1) 
    fulltext("pizza") 
    paginate :page => params[:page], :per_page => 50 
end 

@posts = @search.results 
@rows_num = @search.total 

Общее количество возвращаемых строк равно 250. По умолчанию 50 строк отображаются на каждой странице.

До сих пор все в порядке.

Мне нужно получить все результаты поиска (результаты 250) для дальнейшей обработки. @posts содержит только 50 строк, отображаемых на странице.

@posts.all, похоже, не работает.

Как получить доступ ко всему набору результатов поиска солнечных пятен solr?

Благодарим за помощь.

ответ

0

Хотя я не знаю ни Ruby, ни Sunspot, по вашему запросу есть параметр: per_page с 50 значением на нем. В solr HTTP REST API это должно быть эквивалентно как rows = x param, в соответствии с документами Sunspot API. В основном это параметр, который показывает, сколько результатов будет возвращено по одному запросу. Если это значение будет 1000000, оно всегда будет возвращать все результаты запроса, до миллиона, независимо от того, сколько их было найдено.

Сделайте второй запрос с более высоким лимитом, чтобы получить все документы. Выберите верхний предел, с которым вы можете иметь дело, поскольку некоторые запросы могут совпадать и возвращать весь индекс, если задано достаточно высокое значение для строк.