0

Моя модель проиндексирована с Thinking Sphinx, и я хочу фильтровать результаты поиска с помощью тегов модели, предоставляемых act_as_taggable_on. Я прочитал this previous question, что позволило моим поисковым запросам использовать :conditions => { :tags => 'Comedy' } в качестве фильтра.Имена тегов Acts_as_taggable_on как атрибуты Thinking Sphinx

Это не комплексное решение, так как по умолчанию весь текст выполняется в индексированных полях 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.

ответ

3

Изменение индекса:

define_index 
    indexes title, :sortable => true 
    has "CRC32(category_tags.name)", :as => :tags, :type => integer 
end 

Примечание: category_tags.name относится к your_table_name.column_name

И поиск тег после преобразования в целое:

Model.search :with => {:tags =>'Comedy'.to_crc32} 

См общие вопросы больше: http://freelancing-god.github.com/ts/en/common_issues.html

Смежные вопросы