【ElasticSearch】文档(更新)
==================================================
1、根据ID更新文档
==================================================
1、根据ID更新文档
rest
POST myindex/_update/1 { "doc": { "name": "Smith" } }
client
// 数据 Map<String, String> data = new HashMap<>(); data.put("name", "Smith"); // 索引和ID UpdateRequest updateRequest = new UpdateRequest(index, id); updateRequest.doc(data); // 立即生效 updateRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); UpdateResponse updateResponse = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT); if (updateResponse.status() == RestStatus.OK) { return true; } else { return false; }
2、存在则更新,不存在则添加
POST myindex/_update/2
{
"doc": {
"name": "Alice Smith"
},
"upsert": {
"name": "Alice Smith"
}
}
3、根据条件更新文档
POST myindex/_update_by_query
{
"query": {
"bool": {
"must": [
{
"term": {
"name": {
"value": "Alice"
}
}
}
]
}
},
"script": {
"lang": "painless",
"source": "ctx._source.name = params.newname",
"params": {
"newname": "New Alice"
}
}
}
4、脚本更新文档
POST myindex/_update/1
{
"script": {
"lang": "painless",
"source": "ctx._source.name = params.name",
"params": {
"name": "Bob"
}
}
}
https://www.liangzl.com/get-article-detail-229731.html