Elastic Search:更新现有索引中一个字段的映射

Elastic Search : Update mapping of one field in existing index

我有一个具有以下映射的索引:

{
          "code_sourcenodedupefilecontractv4_1421_shared_5dd3788f-2d0a-4a49-b679-98bbf519013e": {
            "mappings": {
              "SourceNoDedupeFileContractV4": {
                "_meta": {
                  "version": 1421
                },
                "_routing": {
                  "required": true
                },
                "properties": {

                  .
                  .
                  .
                  .

                  "indexedTimeStamp": {
                    "type": "date",
                    "store": true,
                    "doc_values": false,
                    "format": "epoch_second"
                  },
                  .
                  .
                  .
                  .
                  .

                }
              }
            }
          }
        }

我必须将字段 doc_value 更改为 true。我尝试了以下但在尝试时出现异常。

PUT code_sourcenodedupefilecontractv4_1421_shared_5dd3788f-2d0a-4a49-b679-98bbf519013e/_mapping/SourceNoDedupeFileContractV4
{
  "properties": {
    "indexedTimeStamp": {
      "type": "date",
      "doc_values" : true
    }
  }
}

我遇到的异常是在尝试命令时:

    {
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Mapper for [indexedTimeStamp] conflicts with existing mapping in other types:\n[mapper [indexedTimeStamp] has different [store] values, mapper [indexedTimeStamp] has different [doc_values] values, mapper [indexedTimeStamp] has different [format] values]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Mapper for [indexedTimeStamp] conflicts with existing mapping in other types:\n[mapper [indexedTimeStamp] has different [store] values, mapper [indexedTimeStamp] has different [doc_values] values, mapper [indexedTimeStamp] has different [format] values]"
  },
  "status": 400
}

知道我在这里做错了什么吗?任何帮助将非常感激。

doc_values无法更新。

您将不得不删除您的索引更新您的映射并重新索引您的数据。

看我的answer about reindexing