2014-01-21 36 views
3

核心指数的工作工作,但三角洲指数是行不通的。但奇怪的是,日志文件中没有错误或警告,所以我不知道如何调试它。 我用phusion-passenger和Webbrick在本地测试了它。结果是一样的。 我使用rails 3.2.13和思维狮身人面像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的情况下才能识别新记录?

+0

当然,你重建索引TS? –

+0

是的,当然.. – Asco

回答

1

你的编辑是正确的 - deltas只能通过ActiveRecord回调被触发,所以如果你没有通过标准ActiveRecord工作流程编辑/添加对象,Sphinx索引将不会被更新。

这同样适用于update_attribute方法(注:奇异的版本),当它被称为回调不调用(不像update_attributessave等)。

+0

所以我必须降级到思维狮身人面像2.1.0和使用日期时间三角洲索引? – Asco

+0

您可以运行'indexer --config config/production.sphinx.conf log_delta --rotate'来手动运行使用当前方法的delta索引器。也许你想详细说明为什么你觉得日期时间增量是最好的前进方向? – pat

+0

但也是:ts-datetime-delta中的最新提交支持TS v3。 – pat

相关问题