如何使用Java API按条件更新ElasticSearch文档并传入JSON参数?
ElasticSearch 按条件更新student索引数据方案
你可以直接调用_update_by_query接口,通过查询条件定位到name为abc的文档后,用脚本修改指定字段即可,不需要提前获取文档ID。
完整请求格式
请求方法为POST,请求路径为:
POST /student/_update_by_query
请求体JSON如下:
{ "query": { "term": { "name.keyword": "abc" } }, "script": { "source": "ctx._source.division = 'A'; ctx._source.class = 11", "lang": "painless" } }
注意事项
- 如果你的
name字段本身是keyword类型,不需要加.keyword后缀,直接写"name": "abc"做精确匹配即可 - 如果你确定只有1条匹配文档,可以在请求体顶层加上
"max_docs": 1参数,避免误改多条数据 - 执行后返回结果中的
updated字段值为1即代表更新成功
内容的提问来源于stack exchange,提问作者arpit joshi
相关产品推荐
相关产品推荐

