销毁记录时处理 ThinkingSphinx 实时索引
Dealing with ThinkingSphinx realtime indices when destroying records
我正在尝试将 ThinkingSphinx 中基于增量的索引转换为实时索引。根据文档,我添加了这个回调:
after_save ThinkingSphinx::RealTime.callback_for(:location)
这对于添加和更新记录来说效果很好,哇。我的问题是删除记录,根据 Rails 文档,这不会触发 after_save
回调。我已通过删除一条记录来确认这一点,该记录并未从我的 sphinx 索引中删除。
我试过了
after_destroy ThinkingSphinx::RealTime.callback_for(:location)
但这会引发错误(因为实时回调不支持 after_destroy
)。
使用实时索引时如何从索引中删除条目?
(thinking-sphinx 3.3.0
, rails 5.0.4
, 如果有帮助的话)
Thinking Sphinx 会自动向所有索引模型添加自己的 after_destroy
回调,因此无需添加任何代码即可从实时索引中删除这些记录。
如果您仍然需要手动执行此操作,例如在软删除对象时。
ThinkingSphinx::ActiveRecord::Callbacks::DeleteCallbacks.after_destroy(instance)
我正在尝试将 ThinkingSphinx 中基于增量的索引转换为实时索引。根据文档,我添加了这个回调:
after_save ThinkingSphinx::RealTime.callback_for(:location)
这对于添加和更新记录来说效果很好,哇。我的问题是删除记录,根据 Rails 文档,这不会触发 after_save
回调。我已通过删除一条记录来确认这一点,该记录并未从我的 sphinx 索引中删除。
我试过了
after_destroy ThinkingSphinx::RealTime.callback_for(:location)
但这会引发错误(因为实时回调不支持 after_destroy
)。
使用实时索引时如何从索引中删除条目?
(thinking-sphinx 3.3.0
, rails 5.0.4
, 如果有帮助的话)
Thinking Sphinx 会自动向所有索引模型添加自己的 after_destroy
回调,因此无需添加任何代码即可从实时索引中删除这些记录。
如果您仍然需要手动执行此操作,例如在软删除对象时。
ThinkingSphinx::ActiveRecord::Callbacks::DeleteCallbacks.after_destroy(instance)