首先,你應該添加搜索字段就像這個railscast解釋說:http://railscasts.com/episodes/37-simple-search-form
由於您的搜索不是針對特定的模式,使用通用控制器的名稱,而不是ProjectsController雖然。
然後,您應該使用太陽黑子DSL代替ActiveRecord查找器。
這裏是一個示例代碼,以幫助您開始:
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。 謝謝尼克!
好的寫作,Mathieu!小記:在Heroku上,最好參考http://docs.heroku.com/websolr獲取最新的設置說明。特別是,websolr-rails已經被棄用了很長時間,而Sunspot直接支持1.2版本的Websolr。我剛剛更新了websolr-rails README以闡明這一點。 – 2011-02-04 16:49:07