Rails Elastic Search 在 update_all 之后重新索引数据

Rails Elastic Search reindex data after update_all

我在我的 Rails 应用程序中使用 Searchkick 与弹性搜索 api 交互,它几乎在所有情况下都工作正常,但我面临的问题是我有状态字段在我的模型中,通过 select 所有复选框,用户可以更改所有记录的状态,所以我使用 update_all 更新我的数据,它不会触发任何回调,并且 searchkick 重新索引数据after_commit回调。因为,我的数据在 Elastic Search 中没有得到 reindexed 这种方式,它给出了相同的结果,我想做的是,手动调用 Model.reindex 是一个不错的选择吗??

您必须手动调用 Model.reindexaction_all 旨在直接在数据库级别进行更改。查找更多 here.

您可以创建 after_action 过滤器来重新索引数据。

我实际上解决了它,没有重新索引整个数据,这本来是一个非常幼稚的解决方案,而不是我们也可以重新索引单个记录,如下所示

product = Product.find 10
product.reindex
# or to reindex in the background
product.reindex_async