ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)
Posted 张志翔ۤ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)相关的知识,希望对你有一定的参考价值。
在工作中,我们通常会使用查询条件来过滤出满足要求的数据,然后再删除它,这样的用法比较多,ES提供了delete_by_query方法实现这种场景,特此记录便于日后查阅。
1、删除符合条件的记录
delete_by_query方法会删除符合条件的记录,命令如下:
POST company01/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
注:如果需要删除的数据量巨大,需要通过控制删除批次数来防止ES假死无响应,通过以下参数控制分为100个批次,每秒删除100条(根据业务需要进行调整),命令如下:
POST company01/_delete_by_query?scroll_size=100&requests_per_second=100
{
"query": {
"match": {
"message": "some message"
}
}
}
2、任务模式
可以查看正在执行的异步任务,命令如下:
GET _tasks?detailed=true&actions=*/delete/byquery
也可以直接查看异步任务的信息,命令如下:
GET /_tasks/{task id}
如果需要取消这个异步任务,命令如下:
POST _tasks/{task id}/_cancel
到此查询并删除匹配文档(delete_by_query)介绍完成。
以上是关于ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)的主要内容,如果未能解决你的问题,请参考以下文章