如何使用无痛脚本将新字段添加到文档中

时间:2018-05-31 15:26:23

标签: elasticsearch elasticsearch-painless

有没有办法在无痛脚本中创建文档中的字段 如果它不存在?

我正在使用类似的东西:

     if(!ctx._source.tags.contains(....)

但文档中可能不存在标记字段

可以吗?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您打算使用_update_by_query API,建议您执行以下操作:

POST your_index/_update_by_query
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "tags"
        }
      }
    }
  },
  "script": {
    "source": "ctx._source.tags = ''"
  }
}

否则,只需使用无痛便可以执行以下操作:

{
  "script": {
    "source": """
      if(ctx._source.tags == null) {
        ctx._source.tags = null;
      }
    """
  }
}