一尘不染

是否可以通过Elasticsearch中的映射来更新索引中的现有字段?

elasticsearch

我已经创建了一个索引,它包含MySQL数据库中的数据。我的string表中只有几个字段,在这些字段中我需要它们作为不同的类型(integerdoubleElasticsearch

因此,我知道可以通过mapping以下方式实现:

{
  "mappings": {
    "my_type": {
      "properties": {
        "userid": {
          "type": "text",
          "fielddata": true
        },
        "responsecode": {
          "type": "integer"
        },
        "chargeamount": {
          "type": "double"
        }
      }
    }
  }
}

但是,当我将索引创建为新索引时,我已经尝试过了。我想知道的是如何chargeamount使用mappingas
来更新现有字段(即:在这种情况下)PUT

这可能吗?任何帮助,不胜感激。


阅读 231

收藏
2020-06-22

共1个答案

一尘不染

创建映射类型后,您在更新内容上会受到很大的限制。根据官方文档,创建现有映射后,只能对以下内容进行更改,但是更改字段的类型不是其中之一:

通常,无法更新现有字段的映射。此规则有一些例外。例如:

  • 可以将新属性添加到“对象”数据类型字段。
  • 新的多字段可以添加到现有字段中。
  • doc_values可以禁用,但不能启用。
  • ignore_above参数可以更新。
2020-06-22