我有一個附件表具有多個值(通過多態聯繫)。我希望能夠通過思考獅身人面像來搜索多個值(如SQL中的AND)。使用思維斯芬克斯搜索多個多態項目
例如:
class FieldValue < ActiveRecord::Base
belongs_to :customized, :polymorphic => true
end
class Attachment < ActiveRecord::Base
has_many :field_values, :as => :customized, :dependent => :destroy
define_index do
has field_values.field_id, :as => :field_ids, :type => :multi
indexes field_values.value, :as => :field_values, :type => :multi
set_property :enable_star => 1
set_property :min_infix_len => 3
end
end
我fieldValue方法模型有一個字段(值),所以使用上述指數的定義,我可以這樣做:
Attachment.search :conditions => { :field_values => ["*5100*", "1"] }, :with => { :field_ids => [23, 24] }
但是,這在技術上不做我所希望的。該field_values應該匹配field_ids(類似於select * from attachments where (field_value.id = 23 and field_value.value like '*5100*) and (field_value.id = 23 and field_value.value = '1')
(我知道有聯接缺少以上:P)
是否有可能做一個類似的搜索
我曾經使用FieldValue上的索引來進行搜索,但看起來我最終得到的結果只是一些'黑客',所以希望有一種'官方'的方式來做到這一點。基本上,我試圖複製類似: ''' define_index做 指標:value_one 指標:value_two 指標:value_three 結束 ''' 但由於該協會是多態的,VALUE_ [one..three]被定義爲鍵/值(如上所述)。我可以使用標準的Attachment.search解決這個問題,然後單獨的FieldValue.search調用併合並結果,但這是我想避免的破解:P – 2012-03-02 13:54:02
對不起,試圖編輯一堆時間,但忘記了你不能真的格式意見:P – 2012-03-02 13:56:41
是否可以單獨獲得結果並將它們相交?看到這個問題:http://stackoverflow.com/questions/30305981/intersect-thinking-sphinx-results – Jonathan 2015-05-18 14:48:17