我是Sunspot / Solr的新手,我在使用全文搜索在我的网站上工作时遇到了问题。请找到以下代码:
/models/product.rb
attr_accessible :category_id, :title, :description
belongs_to :category
searchable do
text :title, :description
end
/models/category.rb
has_many :products
/controllers/categoriescontroller.rb
def show
@category = Category.find_by_slug!(params[:id])
@search = @category.products.solr_search do
fulltext params[:search]
end
@products = @search.results
end
/views/categories/show.html.erb
<%= form_tag @category, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<%end%>
我想搜索属于特定类别的产品。例如,如果参数中的类别是:fiction,我想将搜索结果限制为该类别下的产品。但是,如果我搜索上面的代码,请说“丢失”&#39; ,我得到所有匹配的产品&#39;丢失&#39;在所有类别下。我无法理解我在这里做错了什么。请帮忙。
答案 0 :(得分:0)
我在阅读太阳黑子维基之后想出了怎么做。在类别controller.rb
if(params[:search] != nil)
@search = Product.solr_search do
with :category_id, Category.find_by_slug!(params[:id]).id
fulltext params[:search]
end
@products = @search.results
else
@products = @category.products
end