Во-первых, вы должны добавить поле поиска, как описано в этом Railscast: http://railscasts.com/episodes/37-simple-search-form
Так как ваш поиск не относится к конкретной модели, используйте общее имя контроллера вместо ProjectsController.
Затем следует заменить искатель ActiveRecord на использование DSL Sunspot.
Вот пример кода, который поможет вам начать работу:
page = @page = params[:page] && params[:page].to_i || 1
@search = Sunspot.search(Realty) do # search_ids
per_page = params[:per_page] && params[:per_page].to_i || 10
# not adapted to your case
with(:equipments).all_of params['equip'].split(' ') if params['equip']
case params[:sort]
when "average_rating"
order_by :average_rating, :desc
when "type"
order_by :type, :asc
end
paginate :page => page, :per_page => per_page
# other criteria...
end
По вашему мнению,затем вы можете перебирать @ search.results
<%= will_paginate @search.results %>
<% @search.results.each do |hit| %>
<%# 'path' contains the stored polymorphic_path of each model object #%>
<% link_to hit.stored('path') do %>
<p><%= hit.stored('content') %></p>
<% end %>
<% end %>
Наконец, использовать WebSolR вместо стандартного сервера SolR довольно просто, вы можете следовать инструкциям по настройке в https://github.com/onemorecloud/websolr-rails.
Редактировать: Как прокомментировал Ник, вы должны полностью перейти на http://docs.heroku.com/websolr. Спасибо, Ник!