2011-01-19 5 views
0

관련 모델의 컬럼에 int 타입의 패싯을 정의하는 방법이 있습니까? sphinx가 연관된 모델 컬럼의 경우 패싯으로 정의 된 모든 필드를 문자열로 변환합니까?관련 모델에 대한 스핑크스 패싯 생각하기

내 자식 테이블의 열을 패싯으로 정의하려고합니다.후에 Model1.facets를 다시 작성하면이 오류가 발생합니다.

class Model1 < ActiveRecord::Base 
    .... 

    has_many :communities, :through => :model2 

    ... 

    define indexes 

    ... 

    indexes model2.community_id, :as => :community_id, :facet => :true 

    ... 

    end 

end 

모델 1 - 현재 모델 모델 2 - 모델을 조인을 사용 :

Model1.facets 

NoMethodError: undefined method `to_crc32' for 9:Fixnum 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet.rb:99:in `translate' 
     from (irb):3:in `detect' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet.rb:98:in `each' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet.rb:98:in `detect' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet.rb:98:in `translate' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet.rb:75:in `value' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:114:in `add_from_results' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search.rb:219:in `each_with_groupby_and_count' 
     from (irb):3:in `each_with_index' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search.rb:218:in `each' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search.rb:218:in `each_with_index' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search.rb:218:in `each_with_groupby_and_count' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:113:in `add_from_results' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:49:in `populate' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:47:in `each' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:47:in `populate' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/facet_search.rb:13:in `initialize' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search_methods.rb:422:in `new' 
     from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/ 
lib/thinking_sphinx/search_methods.rb:422:in `facets' 
     from (irb):3>> 

답변

2

당신이 측면에 대한 정수를 사용하는 경우를 통해, 그들은 속성으로 정의되어야한다 :

has model2.community_id, :as => :community_id, :facet => :true 

indexes 방법은 필드에 대한 방법입니다. 사람들이 검색 할 수 있도록하려는 텍스트 데이터입니다. 나는 귀하의 사이트를 사용하는 사람들이 검색 필드에 커뮤니티 ID를 입력하지 않을 것이라고 추측합니다. 그렇지 않은 경우 의견을 남기고 community_id을 필드 및 속성으로 사용하는 방법을 확장 해 보겠습니다.

관련 문제