我有一个index
,其中定义了属性,但是在文档中从另一个Elasticsearch导入时缺少一个属性。
说,索引中的映射属性为:
"properties": {
"name": {"type" : ..},
"address": {"type" : ..},
"email": {"type" : ..}
}
但是在文档中,其中一个属性email
缺少,因为:
{
"name": "Wheeler Walker",
"address": "Texas",
},
{
"name": "Kenny Rogers",
"address": "Virginia",
}
我已经在email
中定义了属性mapping
。
现在,我只需要批量更新这些文档,以使email
属性的值为""
为空。
我该怎么做?
答案 0 :(得分:2)
这是updateByQuery的经典案例。
您的请求正文应大致如下:
{
"query": {"bool": {"must_not: {"exists": {"field": "email"}}}},
"script": 'ctx._source.email = ""'
}