私のモデルはThinking Sphinxで索引付けされており、acts_as_taggable_onによって提供されたモデルのタグで検索結果をフィルタリングしたいと考えています。私はthis previous questionを読んで、私の検索でフィルタリングクエリとして:conditions => { :tags => 'Comedy' }
を使うことができました。Acts_as_taggable_onタグの名前をThinking Sphinxの属性
これはキャッチオールソリューションではありません。デフォルトでは、すべてのテキストはSphinxのインデックスフィールドで検索されるためです。たとえば、Model.search :conditions => { :tags => "Comedy" }
を検索すると、タグBlack Comedy
の結果も表示されます。私はで提供前の回答時に構築しています
define_index
indexes title, :sortable => true
has category_tags(:name), :as => :tags
end
注:私は、属性の代わりに、フィールドを使用して解決策ですが、私はModel.search :with => { :tags => "Comedy" }
を検索するときに有効な結果を得るように見えることはできませんし、私のdefine_index
ブロックはこのようになっていることを見ます上記のリンク先の質問。 Answerererはコンテキスト内でタグを索引付けするので、category_tagsメソッドの理由です。