ElasticSearch 清空index数据的方法 _delete_by_query

本文介绍如何利用curl命令工具实现对Elasticsearch中指定类型的文档进行批量删除操作,并详细解析了命令的具体用法及参数说明。

curl工具命令:

查询删除:
curl -u用户名:密码 -XPOST '192.168.0.201:9200/quality_control/my_type/_delete_by_query?refresh&slices=5&pretty' -H 'Content-Type: application/json' 
-d'{
  "query": {
    "match_all": {}
  }
}'

kibana:

#清空索引
POST quality_control/my_type/_delete_by_query?refresh&slices=5&pretty
{
  "query": {
    "match_all": {}
  }
}

此操作会分成5个切片去执行删除

执行后返回每个切片删除的信息。


在 Kibana 的 **Dev Tools** 中清空一个 Elasticsearch 索引(如 `quotation_product_index_v1`)中的数据,实际上就是 **删除索引中的所有文档**。 Elasticsearch 没有类似 SQL 的 `TRUNCATE` 命令,最直接有效的方式是使用 **Delete By Query API** 来删除所有文档。 --- ### ✅ 推荐方法:使用 `POST _delete_by_query` 删除所有文档 ```json POST /quotation_product_index_v1/_delete_by_query { "query": { "match_all": {} } } ``` --- ### 🔍 解释: - `POST /quotation_product_index_v1/_delete_by_query` → 表示对 `quotation_product_index_v1` 索引发起“按查询条件删除” - `"query": { "match_all": {} }` → 匹配该索引中 **所有文档** - 执行后,Elasticsearch 会: - 删除索引中所有匹配的文档 - 保留索引结构、映射(mapping)、设置(settings) - 不会删除索引本身 --- ### 📝 示例输出(成功后): ```json { "took" : 123, "timed_out" : false, "total" : 5000, "deleted" : 5000, "batches" : 1, "version_conflicts" : 0, ... } ``` 表示成功删除了 5000 条文档。 --- ### ⚠️ 注意事项: 1. **不可逆操作**:删除后无法恢复,请提前确认是否需要备份。 2. **权限要求**:确保你有 `delete` 和 `delete_by_query` 权限。 3. **性能影响**:如果数据量很大,建议在低峰期执行,或分页删除。 4. **版本兼容性**:适用于 ES 5.x ~ 8.x。 --- ### ❌ 不推荐:删除并重建索引(除非你想重置 mapping) ```json DELETE /quotation_product_index_v1 PUT /quotation_product_index_v1 { "mappings": { ... }, "settings": { ... } } ``` 这会 **彻底删除索引并重建**,如果你没有保存 mapping 和 settings,会导致配置丢失。 --- ### ✅ 如果你想“安全一点”,可以先查一下有多少数据: ```json GET /quotation_product_index_v1/_count { "query": { "match_all": {} } } ``` 确认数量后再执行删除。 --- ### 总结 要清空 `quotation_product_index_v1` 中的数据,只需在 Kibana Dev Tools 中运行: ```json POST /quotation_product_index_v1/_delete_by_query { "query": { "match_all": {} } } ``` 即可安全、快速地清空所有文档,保留索引结构。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值