es新增字段,并设置默认值

重新设置mapping

添加新的字段。

设置es允许脚本执行:
elasticsearch.yml 

script.inline: true

然后执行脚本

POST linewell_assets_mgt_es/lw_devices/_update_by_query?conflicts=proceed
{
   "script":{
        "lang":"painless",
        "inline":"if (ctx._source.update_time== null) {ctx._source.
update_time = '2018-01-01'}" } }

就可以为新添加的字段设置默认值。

如果不加conflicts=proceed会出现版本冲突

或者可以带条件:

{
    "script": {
    "inline": "ctx._source.camera_dev_conn_status='在线'"
  },
  "query": {
    "match_phrase": {
      "camera_sbzt": "在用"
    }
  }

}
原文地址:https://www.cnblogs.com/chenmz1995/p/10237389.html