6

I am running a big migration and would like to disable delta indexing so it runs much faster.

Is there a way to specify in the beginning of the task to turn delta indexing off?

Yoni Baciu
  • 2,667
  • 1
  • 22
  • 28

2 Answers2

14

Two options:

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

Or, what may be better in your situation:

ThinkingSphinx.deltas_enabled = false

And set it back to true when you're done.

pat
  • 16,116
  • 5
  • 40
  • 46
9

For thinking sphinx v3, you can suspend the deltas this way (the old way is deprecated):

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

So if I have a model called Job with an index named :job, it would look like this:

ThinkingSphinx::Deltas.suspend(:job) do
  # Do Something
end
Simon B.
  • 2,530
  • 24
  • 30
mscriven
  • 409
  • 4
  • 10
  • 1
    And there's also the `ThinkingSphinx::Deltas.suspend!` and `ThinkingSphinx::Deltas.resume!` methods if you want to control things at a finer level - but this won't automatically run delta indexing for any models afterwards. – pat Aug 04 '13 at 00:55