我正在使用Searchkick在我的Rails应用程序中与弹性搜索API进行交互,并且它几乎适用于所有情况,但我遇到的问题是我在我的模型中有状态字段,并且通过选中所有复选框a用户可以更改所有记录的状态,因此我使用{this.props.children}
更新我的数据,这不会触发任何回调,并通过update_all
回调搜索重新索引数据。而且,因为我的数据没有在弹性搜索中获得after_commit
,因为它给出了相同的结果,我想要做的是,手动调用reindexed
是一个不错的选择吗?
答案 0 :(得分:3)
我实际上解决了它,没有重新索引整个数据本来是一个非常天真的解决方案,而不是我们也可以重新索引单个记录如下
product = Product.find 10
product.reindex
# or to reindex in the background
product.reindex_async
答案 1 :(得分:1)
您必须手动拨打Model.reindex
。构建action_all
以直接在DB级别进行更改。查找更多here。
您可以创建after_action
过滤器来重新编制索引数据。