通过Elasticsearch中的更新将新字段添加到现有文档中

时间:2019-10-22 05:51:49

标签: elasticsearch

我有一个index,其中定义了属性,但是在文档中从另一个Elasticsearch导入时缺少一个属性。

说,索引中的映射属性为:

"properties": { 
    "name": {"type" : ..},
    "address": {"type" : ..},
    "email": {"type" : ..}
}

但是在文档中,其中一个属性email缺少,因为:

{
    "name": "Wheeler Walker",
    "address": "Texas",
},
{
    "name": "Kenny Rogers",
    "address": "Virginia",
}

我已经在email中定义了属性mapping

现在,我只需要批量更新这些文档,以使email属性的值为""为空。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

这是updateByQuery的经典案例。

您的请求正文应大致如下:

{
   "query": {"bool": {"must_not: {"exists": {"field": "email"}}}},
   "script": 'ctx._source.email = ""'
}
相关问题