如何在Elasticsearch中删除中文索引

Posted wangzhen3798

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Elasticsearch中删除中文索引相关的知识,希望对你有一定的参考价值。

背景

因为某种特殊的原因,发现在es集群中出现了中文名称的索引,通过_cat API查询结果如下:

GET /_cat/indices/?v

health status index   uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   rcp-b   nqTIHs6-SSG0K-Pa7guIIA   5   0          1            0        4kb            4kb
green  open   .kibana T4aQP8DTT72aS0qrg7k_-w   1   0         19            3     64.6kb         64.6kb
red  open   测试索引中文 T4aQP8DTT99aS0qrg7k_-w   5   1         19            3     64.6kb         64.6kb

如何删除这个"测试索引中文" 的索引呢 ?

直接用DELETE API 删除报错

DELETE /测试索引中文


  "error": 
    "root_cause": [
      
        "type": "index_not_found_exception",
        "reason": "no such index",
        "index_uuid": "_na_",
        "resource.type": "index_or_alias",
        "resource.id": "K?\"\u0015-?",
        "index": "K?\"\u0015-?"
      
    ],
    "type": "index_not_found_exception",
    "reason": "no such index",
    "index_uuid": "_na_",
    "resource.type": "index_or_alias",
    "resource.id": "K?\"\u0015-?",
    "index": "K?\"\u0015-?"
  ,
  "status": 404

解决办法

思路就是用别名API(_alias)将这个中文索引,别名成英文,然后再用DELETE API删除

POST /_aliases

    "actions" : [
         "add" :  "index" : "测试索引中文", "alias" : "testcn"  
    ]


DELETE /testcn

以上是关于如何在Elasticsearch中删除中文索引的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch 索引原理

microsoft search索引缓存能不能删除

是否可以对 ElasticSearch 索引进行分区?

Elasticsearch根据条件进行删除索引命令

使用 Elastica 库删除 ElasticSearch 中的文档

Elasticsearch——创建/查看/删除索引创建/查看/修改/删除文档映射关系