Когда я запускаю задачу переиндексации (rake ts:reindex), она автоматически устанавливает значение дельты в false. Но я определенно хочу, чтобы дельта-индексация работала после переиндексации. Поэтому я хочу установить значение дельты обратно в «истину». Как мне это сделать??
рельсы думают, сфинкс, как мне установить дельту в true после переиндексации?
Ответы (2)
Вам не нужна дельта-индексация после переиндексации, так как основной индекс будет актуальным и полным. Ваша модель должна устанавливать дельта-флаг в значение true только после вашего следующего обновления, когда ваш основной индекс будет неполным.
Thinking Sphinx автоматически установит для delta значение true, когда вы вносите изменения в экземпляр модели.
Единственные случаи, когда это не, — это когда вы фактически изменяете экземпляр ассоциации вместо индексированной модели или изменяете индексированную модель каким-либо образом, который не запускает обратные вызовы. #update_attribute
(примечание: единственное число) не запускает обратные вызовы. #save
и #update_attributes
делают.
Итак: как вы меняете экземпляры вашей модели? Разве дельта-индексация не происходит, когда вы вносите эти изменения?