【发布时间】:2011-04-30 13:10:25
【问题描述】:
我正在进行大规模迁移,并希望禁用增量索引,以便运行得更快。
有没有办法在任务开始时指定关闭增量索引?
【问题讨论】:
标签: ruby-on-rails thinking-sphinx delta-index
我正在进行大规模迁移,并希望禁用增量索引,以便运行得更快。
有没有办法在任务开始时指定关闭增量索引?
【问题讨论】:
标签: ruby-on-rails thinking-sphinx delta-index
两种选择:
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
【讨论】:
ThinkingSphinx::Deltas.suspend! 和 ThinkingSphinx::Deltas.resume! 方法 - 但之后不会自动为任何模型运行增量索引。