【问题标题】:How can I temporarily disable delta indexing with Thinking Sphinx?如何使用 Thinking Sphinx 暂时禁用增量索引?
【发布时间】:2011-04-30 13:10:25
【问题描述】:

我正在进行大规模迁移,并希望禁用增量索引,以便运行得更快。

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

【问题讨论】:

    标签: ruby-on-rails thinking-sphinx delta-index


    【解决方案1】:

    两种选择:

    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

    【讨论】:

    • 仅供参考:这是针对旧版本的 ts。有关较新版本,请参见下面的答案。
    【解决方案2】:

    对于思考 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! 方法 - 但之后不会自动为任何模型运行增量索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多