В Thinking Sphinx существует различие между полным переиндексированием, при котором все индексы обрабатываются повторно (через rake ts:index
и rake Ts:rebuild
), и обработкой одного индекса.
Если у вас включена дельта-индексация, это означает, что дельта-индекс для данной модели автоматически обрабатывается сразу после изменения записи или добавления новой записи. Это можно сделать как часть стандартного процесса обратного вызова (при использовании :delta => true
) или с помощью фонового работника (Sidekiq, DelayedJob и т. Д.), Если вы используете для них соответствующий дельта-гем.
Все это означает, что вам не нужно запускать полную повторную обработку всех индексов, чтобы изменения присутствовали - дельта-индекс автоматически обрабатывается заново, а изменения записи отражаются в Sphinx.
Стоит отметить, что чем больше происходит изменений, тем больше становится дельта-индекс и, следовательно, тем медленнее он обрабатывается. Таким образом, полный повторный индекс все еще требуется на регулярной основе (ежечасно? Ежедневно? Зависит от вашего приложения), чтобы сократить время обработки дельты.