2013-04-26 3 views
0

저는 Sunspot/Solr을 처음 사용하고 웹 사이트에서 전체 텍스트 검색을 사용하는 데 문제가 있습니다. 찾아주세요 아래 코드 :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%> 

특정 카테고리에 속한 제품을 검색하고 싶습니다. 예를 들어 params의 카테고리가 : fiction 인 경우 검색 결과를 해당 카테고리에 속한 제품으로 제한하려고합니다. 그러나 위 코드를 사용하면 'lost'라고 말하면 모든 카테고리에서 'lost'와 일치하는 모든 제품을 얻을 수 있습니다. 나는 내가 여기서 잘못하고있는 것을 이해할 수 없다. 도와주세요.

답변

0

태양 흑점을 읽는 방법을 알아 냈습니다. 분류 컨트롤러 .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