Моя модель индексируется с помощью Thinking Sphinx, и я хочу отфильтровать результаты поиска по тегам модели, предоставляемым act_as_taggable_on. Я прочитал этот предыдущий вопрос , который позволил моим поискам использовать :conditions => { :tags => 'Comedy' }
в качестве фильтрующего запроса.
Это не универсальное решение, так как по умолчанию весь текст ищется в индексированных полях Sphinx. Например, при поиске Model.search :conditions => { :tags => "Comedy" }
также отображаются результаты с тегом Black Comedy
. Я вижу, что использование атрибутов вместо полей является решением, но я не могу получить правильные результаты при поиске Model.search :with => { :tags => "Comedy" }
, и мой блок define_index
выглядит следующим образом:
define_index
indexes title, :sortable => true
has category_tags(:name), :as => :tags
end
Обратите внимание, что я опираюсь на предыдущий ответ, представленный в вопросе, связанном выше. Ответчик детализирует индексирование тегов внутри контекста - поэтому причина метода category_tags.