Sunspot Solr указывает смещение и предел

#ruby-on-rails #ruby #solr #sunspot #sunspot-rails

#ruby-on-rails #ruby #solr #sunspot #sunspot-rails

Вопрос:

Я знаю, как разбить поиск solr на страницы с помощью sunspot gem. Но я хотел бы указать точную начальную строку и максимальное количество строк для выборки.

Например, что-то вроде:

 Post.search do
  rows(:offset => 2, :limit => 23)
end
  

Как я могу это сделать?

Ответ №1:

Похоже, я ответил на свой собственный вопрос. Это может быть сделано следующим образом:

 Post.search do
  adjust_solr_params do |sunspot_params|
    sunspot_params[:start] = 2
    sunspot_params[:rows] = 23
  end
end
  

Ответ №2:

Sunspot 1.3.0 (на данный момент не выпущен, но должен быть выпущен в ближайшее время) будет иметь :offset параметр paginate : https://github.com/sunspot/sunspot/commit/2a99fd395a49f4137fd4d2ced0610367ecabf4fe

Таким образом, вы сможете написать что-то вроде:

 paginate(:offset => 2, :per_page => 23)