【问题标题】:Delta Indexing not working with Thinking SphinxDelta Indexing 不适用于 Thinking Sphinx
【发布时间】:2014-01-21 11:50:41
【问题描述】:

Core-Index 有效,但 Delta-Index 不起作用。但奇怪的是,日志文件中没有错误或警告,所以我不知道如何调试它。 我用 phusion-passenger 和本地的 Webbrick 测试了它。结果是一样的。 我使用 rails 3.2.13 和 thinking-sphinx 3.1.0。

我的索引定义:

ThinkingSphinx::Index.define :log, :with => :active_record, :delta => true do
  indexes msg, :sortable => true
  has moment, :type => :timestamp
  has program, :type => :string
end

我也尝试使用延迟增量,结果相同。

有什么想法吗?

谢谢!

编辑: 是不是因为我是直接通过MySQL把数据写入数据库的? 所以只有使用 rails+active_record 才能识别新记录?

【问题讨论】:

  • 当然,你重新索引了 ts?

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


【解决方案1】:

您的编辑是正确的 - 增量仅通过 ActiveRecord 回调触发,因此如果您不通过标准 ActiveRecord 工作流程编辑/添加对象,Sphinx 索引将不会更新。

这同样适用于update_attribute 方法(注意:单数版本),因为在调用它时不会调用回调(与update_attributessave 等不同)。

【讨论】:

  • 所以我必须降级到thinking-sphinx 2.1.0并使用datetime-delta-indexing?
  • 您可以运行indexer --config config/production.sphinx.conf log_delta --rotate 以使用当前方法手动运行增量索引器。也许您想详细说明为什么您认为日期时间增量是最好的前进方式?
  • 另外:ts-datetime-delta 中的最新提交支持 TS v3。
  • 非常感谢这个命令!这个对我有用。使用此命令,我不需要 ts-datetime-delta。 :)
猜你喜欢
  • 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
相关资源
最近更新 更多