Elasticsearch将文档字段值从整数更新为字符串

时间:2019-11-06 12:02:20

标签: elasticsearch elasticsearch-query

我有一个弹性搜索索引,其中字段之一与关键字的数据类型映射 这意味着该字段将接受所有数据类型 因此,由于这个原因,我已经将字符串和整数值接收到弹性搜索索引的同一字段中

现在,我想将所有整数值更新为字符串

例如:文档

{
    "_index": "my-index",
    "_type": "my_index_doc",
    "_id": "PqLbOW4BtJ-51rS9hMsm",
    "_score": null,
    "_source": {
        "user_id": 1019407,
    },
    "sort": [
        1572928717850
    ]
}

因此,我想将user_id字段为整数然后将其值更改为字符串的所有文档数据更改为字符串

预期文档:

{
    "_index": "my-index",
    "_type": "my_index_doc",
    "_id": "PqLbOW4BtJ-51rS9hMsm",
    "_score": null,
    "_source": {
        "user_id": "1019407",
    },
    "sort": [
        1572928717850
    ]
},

我们可以使用弹性搜索更新查询所有文档/任何其他解决方案吗?

如果有任何错误,请原谅。

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以利用Update by Query API实现这一目标。只需运行以下命令即可:

POST my-index/_update_by_query
{
  "script": {
    "source": "ctx._source.user_id = Integer.toString(ctx._source.user_id);",
    "lang": "painless"
  },
  "query": {
    "match_all": {}
  }
}