API:
(elasticsearch版本7.3)POST /<index>/_update/<_id> POST /<index>/_update_by_query
1. POST /<index>/_update/<_id>
- 支持脚本,可以更新、删除或跳过修改文档。
- 更新文档部分内容,传递部分文档,将其合并到现有文档中。
#测试--post/update 脚本修改文档 POST /king_test_person/_update/223 { "script" : { "source": "ctx._source.birthday = params.birthday", "lang": "painless", "params" : { "birthday" : "2023-10-01" } } }
#测试--post/update 部分修改文档 POST /king_test_person/_update/223 { "doc": { "name": "王五6" } }
2. POST /<index>/_update_by_query
- 批量修改匹配到查询条件的文档
- 修改mapping结构
2.1 没有查询条件,全部修改
#测试--_update_by_query POST /king_test_person/_update_by_query { "script": { "source": "ctx._source.sex='女'", "lang": "painless" } } }总共8条数据,更新8条数据
2.2 有查询条件,修改匹配的文档
只修改name=王五4 的数据。#测试--_update_by_query POST /king_test_person/_update_by_query { "script": { "source": "ctx._source.sex='男'", "lang": "painless" }, "query":{ "term": { "name": "王五4" } } }
3. 修改mapping
3.1 按查询条件修改
给id=223的文档,添加地址#测试--_update_by_query 修改mapping结构 POST /king_test_person/_update_by_query { "script": { "source": "ctx._source['address'] = \"四川省成都市\"", "lang": "painless" }, "query":{ "term": { "_id": 223 } } }
查询可以看到,只有id=223的文档有属性address
3.2 全部修改
不加查询限制,会更新所有文档#测试--_update_by_query 修改mapping结构 POST /king_test_person/_update_by_query { "script": { "source": "ctx._source['address'] = \"四川省成都市\"", "lang": "painless" } }标签:修改,update,source,文档,elasticsearch,query,POST From: https://www.cnblogs.com/wq-blogs/p/17902609.html