elasticsearch 如何使字段在创建后具有小写分析器?

h79rfbju  于 2022-12-11  发布在  ElasticSearch
关注(0)|答案(1)|浏览(122)

我跑步

PUT /vehicles/_doc/123
{
  "make" : "Honda civic", 
  "color" : "Blue", 
  "from": "Japan",
  "size": "Big",
  "HP" : 250, 
  "milage" : 24000, 
  "price": 19300.97
}

开始时
然后我就跑

PUT /vehicles
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_lowercase_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase"
          ]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "make": {
        "type": "text",
        "analyzer": "my_lowercase_analyzer"
      }
    }
  }
}

它给出例外

{
  "error": {
    "root_cause": [
      {
        "type": "resource_already_exists_exception",
        "reason": "index [vehicles/o66DtxmERa2lmo2WiiZ65w] already exists",
        "index_uuid": "o66DtxmERa2lmo2WiiZ65w",
        "index": "vehicles"
      }
    ],
    "type": "resource_already_exists_exception",
    "reason": "index [vehicles/o66DtxmERa2lmo2WiiZ65w] already exists",
    "index_uuid": "o66DtxmERa2lmo2WiiZ65w",
    "index": "vehicles"
  },
  "status": 400
}

创建后是否可以更新分析器?

z9zf31ra

z9zf31ra1#

更新现有字段的分析器是一项重大更改,您不能在同一索引上更新它,您现在有以下选项

1.添加另一个字段,您可以在其中定义新的分析器(当然,不建议这样做,因为您会丢失旧数据,但在某些情况下,它可能会很有用)。
1.使用相同的字段和更新的分析器定义创建新索引,然后可以使用reindex API将数据从旧索引更新到新索引。

相关问题