Несколько дней назад я установил Sphinx и Thinking-Sphinx на свой ruby на рельсах 2.3.2, и базовый поиск отлично работает. Это значит, без каких-либо условий. Теперь я хочу отфильтровать поиск по некоторым условиям.
У меня есть модель объявлений, и индекс выглядит следующим образом:
define_index do
indexes title, :as => :title, :sortable => true
indexes description, :as => :description, :sortable => true
end
Возможно, я ошибаюсь, но я заметил, что только когда я добавил синтаксис :sortable => true
к этим атрибутам, я мог использовать их в качестве условий в своем поиске. В противном случае он ничего не найдет.
Теперь я также использую плагин act_as_taggable_on, который сгенерировал мои две таблицы БД: теги и теги. У меня нет модели для тегов, просто у меня есть acts_as_taggable_on :tags, :categories
в моей модели объявлений.
То, что я хотел бы сейчас сделать, - это фильтровать по тегам. Итак, я попытался добавить в свой индекс has tags(:id), :as => :tag_ids
безуспешно, а также indexes tags(:id), :as => :tag_ids
, но это тоже не сработало.
Как я могу построить индексы, чтобы я мог сделать что-то вроде этого:
Announcement.search 'some word', :conditions => {:tag_ids => some_id}
А также, который отличается между has
и indexes
Спасибо,
Brian