es curl _delete_by_query 根据条件删除

使用场景

在日常运维中,必不可免的需要对es中的数据进行一些删除,尤其是基于条件的删除。
在没有es head的情况下,只能在服务器上使用curl通过es的api进行操作,结合官方文档及网上示例,走了不少弯路,现将可用的命令总结一下。

基本用法示例

curl -X POST  http://192.168.20.20:9200/index_name_*/_delete_by_query?pretty -H 'Content-Type: application/json' -d '{"query": {"bool": {"must":{"term":{"name":"zhangsan"}}}}}'  

在上述命令中:
服务器地址为:192.168.20.20
索引名称为:index_name_* (注意此处模糊匹配,即在index_name的所有索引里面删除)
条件:name=zhangsan
执行后,会在后台删除数据。

不等于用法示例

如果想删除不等于zhangsan的

curl -X POST  http://192.168.20.20:9200/index_name_*/_delete_by_query?pretty -H 'Content-Type: application/json' -d '{"query": {"bool": {"must_not":{"term":{"name":"zhangsan"}}}}}'  

将must改为must_not

你可能感兴趣的:(ES,elasticsearch)