ES 删除所有索引

开发的时候遇到这样的问题,所以记录下来。

首先可以尝试下面的命令,一个命令删除所有的索引:

# 使用时将 http://localhost:9200 替换成自己的 ES 服务地址,后面所有的同理,不再赘述
curl -X DELETE 'http://localhost:9200/_all'

执行这条命令,可能会成功,如果成功,over,结束了,就是这么简单。

但是有时候会报错,not allow,说你没有权限。

这时候可以尝试另一种办法,就是一个一个删除,但是肯定不能手工来做,让 shell 来帮忙:

# 原理就是先执行 _cat/indices 列出所有的索引,然后循环结果,一个一个删除
for i in `curl -XGET 'http://localhost:9200/_cat/indices' | awk '{print $3}'`; do curl -XDELETE "http://localhost:9200/$i"; done

这第二种办法比较灵活,如果不是想删除所有的,而是符合某种条件的,可以在得到结果之后,利用 grep 进行过滤,然后进行删除。还有,如果想批量操作索引的,都可以这么写,不一定是删除,打开关闭索引,索引的某个设置等等,都是可以的。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用Elasticsearch删除索引中的数据,可以使用delete_by_query方法。下面是使用Elasticsearch-Py库进行删除的示例代码: 引用\[1\]: ```python from elasticsearch import Elasticsearch # 创建Elasticsearch连接 es = Elasticsearch(\[{'host': 'localhost', 'port': 9200}\]) # 构造删除请求 delete_query = { "query": { "range": { "timestamp": { "lt": two_months_ago.strftime("%Y-%m-%dT%H:%M:%S") # 格式化日期为Elasticsearch支持的格式 } } } } # 发送删除请求 es.delete_by_query(index='your_index_name', body=delete_query) ``` 如果要一次性删除多个索引中的数据,可以使用索引别名来指定要删除索引。下面是示例代码: 引用\[2\]: ```python from elasticsearch import Elasticsearch # 创建Elasticsearch连接 es = Elasticsearch(\[{'host': 'localhost', 'port': 9200}\]) # 定义要删除数据的索引别名 index_alias = "your_index_alias" # 构造删除请求 delete_query = { "query": { "range": { "timestamp": { "lt": "now-2M" # 删除两个月以前的数据 } } } } # 发送删除请求,并指定索引别名 es.delete_by_query(index=index_alias, body=delete_query) ``` 需要注意的是,使用Elasticsearch的delete_by_query方法删除索引中的数据并不属于逻辑删除,它实际上是执行了一次查询操作,然后在查询结果的基础上执行删除操作,将满足查询条件的文档从索引中物理删除。\[3\] #### 引用[.reference_title] - *1* *2* *3* [ElasticSearch删除索引中的数据(delete_by_query)](https://blog.csdn.net/weixin_44799217/article/details/130192119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值