首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索中如何重命名数组值

弹性搜索中如何重命名数组值
EN

Stack Overflow用户
提问于 2022-01-26 10:39:36
回答 1查看 79关注 0票数 0

我在弹性搜索文档中有一个数组。我想重命名所有出现的特定值。它有以下映射

代码语言:javascript
复制
{
  "products" : {
    "mappings" : {
      "properties" : {
        "inStock" : {
          "type" : "long"
        },
        "name" : {
          "type" : "keyword"
        },
        "price" : {
          "type" : "double"
        },
        "tags" : {
          "type" : "keyword"
        }
      }
    }
  }
}
代码语言:javascript
复制
{
  "_index" : "products",
  "_type" : "_doc",
  "_id" : "100",
  "_version" : 6,
  "_seq_no" : 5,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "Product A",
    "price" : 50,
    "inStock" : 5,
    "tags" : [
      "tagA",
      "tagB",
      "tagC",
      "tagD",
      "tagB"
    ]
  }
}

我正在寻找一个查询将tagB重命名为其他东西,例如:tagF在所有文档中都有这个匹配的标记。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 10:42:23

可以用update_by_query替换数组的内容,如下所示。

代码语言:javascript
复制
POST /products/_update_by_query
{
  "query": {
    "term": {
      "tags": {
        "value": "tagB"
      }
    }
  },
  "script": {
    "source": "Collections.replaceAll(ctx._source.tags, params.oldTag, params.newTag);",
    "params": {"oldTag": "tagB", "newTag": "tagF"}, 
    "lang": "painless"
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70862130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档