Как я могу временно отключить дельта-индексирование с помощью Thinking Sphinx?

Я выполняю большую миграцию и хотел бы отключить дельта-индексацию, чтобы она работала намного быстрее.

Есть ли способ указать в начале задачи отключение дельта-индексации?

2 ответа

Решение

Два варианта:

Model.suspended_delta do
  # all actions in the block don't fire a delta request
end
# A single delta request gets fired at the end

Или, что может быть лучше в вашей ситуации:

ThinkingSphinx.deltas_enabled = false

И установите его обратно в true когда вы закончите.

Для размышления о sphinx v3 вы можете приостановить дельты следующим образом (старый способ устарел):

ThinkingSphinx::Deltas.suspend(:index_reference) do
  # Do something
end

Поэтому, если у меня есть модель с именем Job с индексом:job, она будет выглядеть так:

ThinkingSphinx::Deltas.suspend(:job) do
  # Do Something
end
Другие вопросы по тегам