ElasticSearch-将所有文档的一个字段值复制到另一字段

Ram*_*esh 5 elasticsearch

我们在索引中有一个字段“名称”。我们最近添加了一个新字段“别名”。我想将名称字段值复制到所有文档的新字段别名。

是否有任何更新查询可以做到这一点?如果那不可能,请帮助我实现这一目标。提前致谢

我正在尝试此查询 http:// URL / index / profile / _update_by_query

{
  "query": {

        "constant_score" : {
            "filter" : {
                "exists" : { "field" : "name" }
            }
        }

  },
  "script" : "ctx._source.alias = name;"
}
Run Code Online (Sandbox Code Playgroud)

在脚本中,我不确定如何命名字段。我遇到错误

{
  "error": {
    "root_cause": [
      {
        "type": "class_cast_exception",
        "reason": "java.lang.String cannot be cast to java.util.Map"
      }
    ],
    "type": "class_cast_exception",
    "reason": "java.lang.String cannot be cast to java.util.Map"
  },
  "status": 500
}
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 5

确实,此后的语法已稍有改变。您需要将查询修改为此:

{
  "query": {

        "constant_score" : {
            "filter" : {
                "exists" : { "field" : "name" }
            }
        }

  },
  "script" : {
      "inline": "ctx._source.alias = ctx._source.name;"
  }
}
Run Code Online (Sandbox Code Playgroud)

ES 6的更新

使用source代替inline