是否可以通过uuid更新嵌套字段

axzmvihb  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(0)|浏览(190)

我正在使用update\ by\查询更新文档,并且有一个名为“”的嵌套字段 Myfield1 “。有一个名为” id “在” Myfield1 “。在我的例子中,Map是这样的:

"mapping":{
  "mytype":{
     "properties": {
       "Myfield1": {
         "type": "nested",
           "properties": {
             "id": {
               "type": "string"
             },
             "field2": {
               "type": "long"
             }
          }
        },
       "Title": {
         "type": "string"
       }
   }
   }
}

“现场” id “innested是由uuid生成的唯一的。然后我要更新 field2 在嵌套字段中 Myfield 通过以下请求进行查询。

{
  "query": {
    "nested":{
      "path":"Myfield1",
      "query":{"match":{"Myfield1.id":"uuid"}},
      "inner_hits":{"from":0,"size":1}
    }
  },
  "script":"for (field in ctx._source.Myfield1) {if(field.id=='uuid') {field.field2='new value'}}"
}

我知道这很管用,但效率很高 script 太低了。我怎么写呢 script “直接更新 field2 也许还有其他有效的方法。
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题