【Linux】Elasticsearch删除索引
编辑
34
2022-03-02
1. 删除单条索引
curl
curl -XDELETE http://localhost:9200/index_name
python
import requests requests.delete('http://localhost:9200/index_name')
2. 删除所有索引
curl
curl -XDELETE http://localhost:9200/_all curl -XDELETE http://localhost:9200/*
如果提示错误
{“error”: {“root_cause”: [ {“type”: “illegal_argument_exception”,“reason”: “Wildcard expressions or all indices are not allowed” } ],“type”: “illegal_argument_exception”,“reason”: “Wildcard expressions or all indices are not allowed” },“status”: 400}
解决方法1:
将ES的配置文件elasticsearch.yml
中的action.destructive_requires_name = true 改为 action.destructive_requires_name = false
解决方法2:
PUT /_cluster/settings{"persistent" : {"action.destructive_requires_name":true }}
然后重启 es解决方法3
遍历 es 的 index_name,然后一个一个去利用delete http://localhost:9200/index_name
的方法来进行删除for i in `curl -XGET 'http://localhost:9200/_cat/indices' | awk '{print $3}'`; do curl -XDELETE "http://localhost:9200/$i"; done
python
1.通过GET http://localhost:9200/_cat/indices 获取所有 index_name 2.将上一步拿到的 index_name 利用 `requests.delete()` 删除索引
3. 索引名称为特殊符号的删除
利用 alias,给索引设置别名,然后通过删除别名的方式删除
POST /_aliases { "actions" : [ { "add" : { "index" : "中文索引名称", "alias" : "testcn" } } ] } DELETE /testcn
将索引名 url 编码,通过 postman 或者 python 等其他工具进行删除(不能通过 curl 删除)
requests.delete('http://localhost3:9200/%25{[@metadata][beat]}-2021.09.13') # 索引首字母为%,通过url编码为%25
- 0
- 0
-
赞助
微信 -
分享