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.reindex
。 action_all
旨在直接在数据库级别进行更改。查找更多 here.
您可以创建 after_action
过滤器来重新索引数据。
我实际上解决了它,没有重新索引整个数据,这本来是一个非常幼稚的解决方案,而不是我们也可以重新索引单个记录,如下所示
product = Product.find 10
product.reindex
# or to reindex in the background
product.reindex_async
我在我的 Rails 应用程序中使用 Searchkick 与弹性搜索 api 交互,它几乎在所有情况下都工作正常,但我面临的问题是我有状态字段在我的模型中,通过 select 所有复选框,用户可以更改所有记录的状态,所以我使用 update_all
更新我的数据,它不会触发任何回调,并且 searchkick 重新索引数据after_commit
回调。因为,我的数据在 Elastic Search 中没有得到 reindexed
这种方式,它给出了相同的结果,我想做的是,手动调用 Model.reindex
是一个不错的选择吗??
您必须手动调用 Model.reindex
。 action_all
旨在直接在数据库级别进行更改。查找更多 here.
您可以创建 after_action
过滤器来重新索引数据。
我实际上解决了它,没有重新索引整个数据,这本来是一个非常幼稚的解决方案,而不是我们也可以重新索引单个记录,如下所示
product = Product.find 10
product.reindex
# or to reindex in the background
product.reindex_async