在ElasticSearch设置中更新分析器

u7up0aaq  于 12个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(178)

我正在使用Sense(Chrome插件),我已经成功设置了一个分析器,它工作正常。如果我在设置上发出GET(/media/_settings),将返回以下内容。

{
   "media": {
      "settings": {
         "index": {
            "creation_date": "1424971612982",
            "analysis": {
               "analyzer": {
                  "folding": {
                     "filter": [
                        "lowercase",
                        "asciifolding"
                     ],
                     "tokenizer": "standard"
                  }
               }
            },
            "number_of_shards": "5",
            "uuid": "ks98Z6YCQzKj-ng0hU7U4w",
            "version": {
               "created": "1040499"
            },
            "number_of_replicas": "1"
         }
      }
   }
}

字符串
我正在尝试通过执行以下操作来更新它:
关闭索引
发出此PUT命令(删除筛选器)

PUT /media/_settings
{
  "settings": {
    "analysis": {
      "analyzer": {
        "folding": {
          "tokenizer": "standard",
          "filter":  [ "lowercase" ]
        }
      }
    }
  }
}


打开索引
但是当设置返回时,过滤器并没有被删除。你可以在创建分析器后不更新它吗?

h43kikqp

h43kikqp1#

简短的回答:没有。
更长的答案。从ES文档:
虽然可以向索引中添加新类型,或向类型中添加新字段,但不能添加新分析程序或更改现有字段。如果这样做,已编入索引的数据将不正确,搜索将不再按预期工作。
最好的方法是创建一个新的索引,然后移动你的数据。有些客户端有帮助程序来为你做这件事,但它不是标准Java客户端的一部分。
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html

相关问题