ElasticSearch-update_by_query
2025-01-22 08:19:30 502 字
This post is also available in English and alternative languages.
ElasticSearch版本:6.5.0(点击跳转官方文档)
1. ElasticSearch 查询更新
最近有个需求,需要 elasticsearch对文档进行局部更新,而且并不知道被更新文档的id。但是有能够定位到文档的其他字段信息,于是那些用id去定位文档的方法就不能用了。
翻API的时候看到了,update_by_query:查询更新。
update_by_query 会获取索引的快照。如果在获取快照时或者进行索引请求时文档发生改变,那么将会发生版本冲突。
update_by_query 不支持回滚,假如修改很多的文档,在修改过程中,有一个版本冲突,后续的更新动作会立即中止,但之前更新的不会被回滚。
这个查询更新API可以用来批量更新,需求需要。我先用条件精确查询出文档,然后再进行更新。
DSL样例
1 | POST /books/book/_update_by_query |
Java-RestHighLevelClient
1 | /** |