2017-07-04 33 views
0

我试图将ThinkingSphinx中基于增量的索引转换为实时索引。每文档,我添加了这个回调:销毁记录时处理ThinkingSphinx实时索引

after_save ThinkingSphinx::RealTime.callback_for(:location)

这只是正常的添加和更新记录,呜。我的问题是删除记录,根据Rails文档,不会触发after_save回调。我已通过删除一条记录来证实这一点,该记录并未从我的狮身人面像索引中删除。

我试图

after_destroy ThinkingSphinx::RealTime.callback_for(:location)

但是,这会引发错误(如实时回调不支持after_destroy)。

如何在使用实时索引时从索引中删除条目?

thinking-sphinx 3.3.0rails 5.0.4,如果这能帮助)

回答

1

思考狮身人面像会自动将其自身after_destroy回调到所有收录的车型,所以去除从实时索引这些记录应该发生没有你需要添加任何代码。

+0

谢谢帕特(很高兴看到你监测这个标签)。是否需要'after_save'回调,还是自动添加? –

+0

after_save不会自动调用,所以您一定需要将它保存在您的代码中。也许如果我再次度过这段时间,那么after_destroy也不会(或者采取更明确的路线,而不是更鲁莽地侵入应用程序的代码)。 – pat

+0

它看起来并不像文档有我可以反对的回购,但即使是文档中的注释也会有很长的路要走。当我进行销毁时,我的开发日志显然没有显示Sphinx查询。 –