我如何修复此错误 Mapper for [description] 与现有 mapper:Cannot 更新参数 [analyzer] 从 [my_analyzer] 冲突到 [default]

How can i fix this error Mapper for [description] conflicts with existing mapper:Cannot update parameter [analyzer] from [my_analyzer] to [default]

我是 elastic 的新手 search.please 帮我解决这个问题。

我正在使用弹性搜索版本 7.13.2。

我用这样的自定义分析器和过滤器创建了一个索引

PUT /analyzers_test
{
  "settings": {
    "analysis": {
      "analyzer": {
        "english_stop":{
          "type":"standard",
          "stopwords":"_english_"
        },
        "my_analyzer":{
          "type":"custom",
          "tokenizer":"standard",
          "char_filter":["html_strip"
            ],
            "filter":[
              "lowercase",
              "trim",
              "my_stemmer"]
        }
      },
      "filter": {
        "my_stemmer":{
          "type":"stemmer",
          "name":"english"
        }
      }
    }
  }
}

然后我为我将拥有的文档创建了一个映射,并指定了我之前创建的自定义分析器(索引中还没有文档) 像这样:

PUT /analyzers_test/_mapping
{
    "properties": {
      "description":{
        "type": "text",
        "analyzer": "my_analyzer"
      },
      "teaser":{
        "type": "text"
      
      }
    }
}

当我尝试创建这样的文档时

POST /analyzers_test/1
{
  "description":"drinking",
  "teaser":"drinking"
}

我收到以下错误

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "Mapper for [description] conflicts with existing mapper:\n\tCannot update parameter [analyzer] from [my_analyzer] to [default]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "Mapper for [description] conflicts with existing mapper:\n\tCannot update parameter [analyzer] from [my_analyzer] to [default]"
  },
  "status" : 400
}

使用 index API 将文档添加到您的索引中。您缺少 _doc

“您不能更改现有字段的映射(包括分析器)。如果要更改现有文档的映射,您需要做的是使用更新的映射将这些文档重新索引到另一个索引。” Abdon Pijpelink

单击原始讨论的名称