Searchkick:无法找到原始记录时删除文档

时间:2018-02-05 21:08:39

标签: ruby-on-rails elasticsearch kibana searchkick

以另一个问题为例

product = Product.find(10) 
   `raise_record_not_found_exception!'
product.nil?
=> true

product = Product.search "*", where: {id: 10}, load: false
product.count
=> 1

如何在没有干净擦拭的情况下移除文档?

由于

2 个答案:

答案 0 :(得分:1)

如果您的索引与您的数据库不同步,并且您不想完全重新索引,则可以执行以下操作:

missing_product = Product.new
missing_product.id = 10
Product.search_index.remove(missing_product)

答案 1 :(得分:0)

这是由Searchkick中的default完成的,除非您使用跳过回调的some methods删除了此记录。

来自Searchkick的报道:

  

保持索引与您同步的策略有四种   数据库中。

     

立即(默认)随时插入,更新或删除记录

     

异步使用后台作业以获得更好的性能......