В моем приложении есть модель Fieldnote, которая has_many: действия, связанные с ней через таблицу с именем fieldnote_activities.Затем я определяю поисковый индекс следующим образом:
searchable :auto_index => true, :auto_remove => true do
integer :id
integer :user_id, :references => User
integer :activity_ids, :multiple => true do
activities.map(&:id)
end
text :observations
end
И затем у меня есть модель поиска для хранения / обновления результатов поиска.Таким образом, поисковая модель также имеет свои ассоциации с деятельностью.Затем я выполняю поиск следующим образом:
@search = Search.find(params[:id])
@query = Fieldnote.search do |query|
query.keywords @search.terms
if @search.activities.map(&:id).empty? == false
query.with :activity_ids, @search.activities.map(&:id)
end
end
@fieldnotes = @query.results
Теперь все это работает ОТЛИЧНО.Проблема заключается в том, что если я изменю действия, связанные с полевой заметкой, результаты поиска не изменятся, поскольку, по-видимому, индексы для этой полевой заметки не изменятся.У меня сложилось впечатление, что флаги: auto_index => true и: auto_remove => true при определении индекса с возможностью поиска будут отслеживать новые ассоциации (или удаленные ассоциации), но, похоже, это не так.Как мне это исправить?