我们有一个字段" name"在索引中。我们最近添加了一个新字段"别名"。 我想将名称字段值复制到所有文档的新字段别名。
是否有任何更新查询可以执行此操作? 如果那是不可能的,请帮助我实现这一目标。 提前致谢
我正在尝试此查询 http://URL/index/profile/_update_by_query
{
"query": {
"constant_score" : {
"filter" : {
"exists" : { "field" : "name" }
}
}
},
"script" : "ctx._source.alias = name;"
}
在剧本中,我不知道如何给出名字字段。 我收到错误
{
"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
}
答案 0 :(得分:2)
事实上,语法已经改变了一点点。您需要将查询修改为:
{
"query": {
"constant_score" : {
"filter" : {
"exists" : { "field" : "name" }
}
}
},
"script" : {
"inline": "ctx._source.alias = ctx._source.name;"
}
}
ES 6更新
使用source
代替inline