如何使用Thinking Sphinx临时禁用delta索引?

Yon*_*ciu 5 ruby-on-rails thinking-sphinx delta-index

我正在运行大型迁移,并希望禁用delta索引,以便它运行得更快.

有没有办法在任务开始时指定关闭delta索引?

pat*_*pat 13

两种选择:

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
Run Code Online (Sandbox Code Playgroud)

或者,在您的情况下可能会更好:

ThinkingSphinx.deltas_enabled = false
Run Code Online (Sandbox Code Playgroud)

并true在完成后将其重新设置.

  • 仅供参考:这是旧版本的ts.有关较新版本,请参阅以下答案. (2认同)

msc*_*ven 9

对于思考sphinx v3,您可以通过这种方式暂停增量(旧方法已弃用):

ThinkingSphinx::Deltas.suspend(:index_reference) do
  # Do something
end
Run Code Online (Sandbox Code Playgroud)

因此,如果我有一个名为Job的模型,其索引名为:job,它将如下所示:

ThinkingSphinx::Deltas.suspend(:job) do
  # Do Something
end
Run Code Online (Sandbox Code Playgroud)