【问题标题】:Thinking Sphinx 3.0.1 how to turn off Delta indexes when testing with RspecThinking Sphinx 3.0.1 如何在使用 Rspec 进行测试时关闭 Delta 索引
【发布时间】:2023-03-26 10:25:01
【问题描述】:

默认情况下,我的所有模型都启用了 Delta 索引:

ThinkingSphinx::Index.define :book, :with => :active_record, :delta => (::Padrino.env == :production ? ThinkingSphinx::Deltas::SidekiqDelta : true) do

我想在运行 Rspec 时关闭 delta 索引(因为运行测试需要更长的时间,而且我还收到无法访问 delta.spl 文件的错误:FATAL: failed to open db/sphinx/test/book_delta.spl: No such file or directory, will not index. Try --rotate option.

我已尝试在 spec/support/sphinx.rb 文件中将其设置为 false,正如 TS 文档中所述:

config.before(:suite) do
    ThinkingSphinx::Test.init, suppress_delta_output: false
    ThinkingSphinx.deltas_enabled  = false # try to turn delta indexing off for the Controller and Model tests   
  end

但是对于插入新数据的每个测试,仍然会执行增量索引,即使对于使用 Factory Girl 工厂插入的数据也是如此。

将此行:ThinkingSphinx.deltas_enabled = false 放入我的任何规范都会导致缺少方法错误:: undefined methoddeltas_enabled=' for ThinkingSphinx:Module`

如何关闭它?

【问题讨论】:

    标签: rspec thinking-sphinx


    【解决方案1】:

    ThinkingSphinx.deltas_enabled 设置适用于 Thinking Sphinx v1/v2。

    使用 Thinking Sphinx v3(我强烈建议更新到最新的 3.0.3),您可以改用以下命令:

    ThinkingSphinx::Deltas.suspend!
    

    如果您想在某个时候重新打开它们,还有一个 resume! 方法。

    【讨论】:

    • 谢谢帕特。我可以查看有关 3.x 的任何文档?主页上的文档似乎并不完整,我在尝试使用 Rspec 测试 Thinking Sphinx 时遇到了很多问题。
    • 大部分文档都针对 TS v3 进行了更新,但恐怕还没有增量。随时在此处发布您遇到的其他问题,或发布到 TS 列表。
    • 我找到了this doc 关于增量索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多