放开手,使开胆,不复瞻前顾后。
在很多的情况下,我们我们想更新我们的文档:
添加一个新的field或者是一个字段变成一个multi-field
用一个值更新所有的文档,或者更新复合查询条件的所有文档
在今天的文章中,我们来讲一下_update_by_query的这几个用法。
增加一个新的字段
可以通过script的方法来为我们的twitter增加一个新的字段,比如:
POST book_will/_update_by_query
{
"script": {
"source": "ctx._source['contact'] = "139111111111""
}
}
修改已有的字段
假如我们想对所有在北京的文档里的uid都加1,那么我么有通过如下的方法:
POST book_will/_update_by_query
{
"query": {
"match": {
"city.keyword": "北京"
}
},
"script": {
"source": "ctx._source['uid'] += params['one']",
"params": {
"one": 1
}
}
}
加入我们想把状态UP_SHELF数据改为DOWN_SHELF:
POST book_will/_update_by_query
{
"query": {
"match": {
"status": "UP_SHELF"
}
},
"script": {
"inline": "ctx._source['status'] = 'DOWN_SHELF'"
}
}
更新多个字段用分号隔离开:
主要看一下下面的script,多个字段就用分号隔开: ctx._source[字段名] = “值”;ctx._source[字段名] = “值”;