最近发现es中有错误数据,某些索引下的字段标识是反的,想要直接根据条件修改指定字段的值
比如es中有一批电脑,每台电脑都自带很多参数(厂家、内存、CPU型号、长宽高等),索引是电脑自己的标识,我想把所以联想的数据中,酷睿i7的电脑,性能标识从中等改为高级
可以使用_update_by_query修改,Java es API中对应的是 UpdateByQueryRequestBuilder
实现上面的例子:
POST 电脑索引/_update_by_query
{
"query": {
"bool": {
"must": [
{
"term" : {
"CPU.keyword" : {
"value" : "酷睿i7"
}
}
},
{
"term" : {
"Performance.keyword" : {
"value" : "中等"
}
}
}
]
}
},
"script": {
"source": "ctx._source.Performance='高级';"
}
}
_delete_by_query是删除,用法一样
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93742.html