Searchkick 手动删除特定记录索引
Searchkick manually remove specific record Index
如何使用 Searchkick 手动删除特定记录索引。有重新索引特定记录的选项,但我没有找到任何删除记录索引的选项。
product = Product.find 10
product.reindex
要从索引中删除:
product = Product.find 10
Product.searchkick_index.remove(product)
如果有人正在寻找如何删除和清除整个索引以重新开始,您可以这样做:
MyModel.searchkick_index.delete && MyModel.searchkick_index.create
给定 product = Product.find(10)
.
如果product.should_index?
returns false
,product.reindex
将从索引中删除该记录。
如果您需要手动删除记录,Product.searchkick_index.remove(product)
是可行的方法。
如果只有被删除模型的id怎么办?例如。在后台工作人员接到电话的情况下?
查看源代码,searchkick 只检查对象的 class 来计算索引并从对象中获取 id,所以你可以这样做来绕过它:
# given value id holding the record id of the deleted model record (eg. Product with id 123)
prod = Product.new(id: id)
Product.searchkick_index.remove(prod)
Hacky 但有效 :P
如何使用 Searchkick 手动删除特定记录索引。有重新索引特定记录的选项,但我没有找到任何删除记录索引的选项。
product = Product.find 10
product.reindex
要从索引中删除:
product = Product.find 10
Product.searchkick_index.remove(product)
如果有人正在寻找如何删除和清除整个索引以重新开始,您可以这样做:
MyModel.searchkick_index.delete && MyModel.searchkick_index.create
给定 product = Product.find(10)
.
如果product.should_index?
returns false
,product.reindex
将从索引中删除该记录。
如果您需要手动删除记录,Product.searchkick_index.remove(product)
是可行的方法。
如果只有被删除模型的id怎么办?例如。在后台工作人员接到电话的情况下?
查看源代码,searchkick 只检查对象的 class 来计算索引并从对象中获取 id,所以你可以这样做来绕过它:
# given value id holding the record id of the deleted model record (eg. Product with id 123)
prod = Product.new(id: id)
Product.searchkick_index.remove(prod)
Hacky 但有效 :P