在Elasticsearch中更新所有记录中的字段

我是ElasticSearch的新手,所以这可能很琐碎,但是我还没有找到更好的方法来获取所有内容,使用脚本处理并逐个更新寄存器。

我想做一个简单的SQL更新:

UPDATE RECORD SET SOMEFIELD = SOMEXPRESSION

我的意图是将实际的伪造数据替换为更有意义的数据(因此,表达式基本上是从有效值池中随机选择)。

回答:

关于使通过查询更新文档成为可能,存在一些未

解决的问题。

技术挑战是,lucene(elasticsearch在后台使用的文本搜索引擎库)段是只读的。您永远不能修改现有文档。您需要做的是删除文档的旧版本(顺便说一句,直到段合并发生,它才被标记为已删除),并为新版本建立索引。那就是现有的更新api所做的。因此,通过查询进行的更新可能会花费很长时间并且会导致问题,这就是为什么它尚未发布。在这种情况下,允许中断正在运行的查询的机制也是一个不错的选择。

但是,通过查询插件进行的更新恰恰暴露了该功能。在使用它之前,请当心潜在的风险。

以上是 在Elasticsearch中更新所有记录中的字段 的全部内容, 来源链接: utcz.com/qa/421882.html

回到顶部