Delta Indexing无法与Thinking Sphinx合作

时间:2014-01-21 11:50:42

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

核心指数有效,但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,则只能识别新记录吗?

1 个答案:

答案 0 :(得分:1)

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

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