ES 7.7.1 高效delete_by_query

当Elasticsearch(index)中的数据量过大时,可能会导致删除接口超时和版本冲突的问题。为了解决这些问题,可以使用_delete_by_query API进行批量删除。首先,通过设置conflicts=proceed和scroll_size参数来处理冲突和分批删除。然后,利用_get_tasks接口检查任务状态,并在必要时使用_tasks/_cancel接口取消任务。此外,可以使用SQL查询统计剩余待删除条数,确保操作的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

index中数据量很大的时候会出现接口超时的情况,另外也会出现version conflict等问题。根据ES

参考文档

https://www.elastic.co/guide/en/elasticsearch/reference/7.x/docs-delete-by-query.html

1.delete by query

POST /user_profile_daily/_delete_by_query?conflicts=proceed&scroll_size=10000&wait_for_completion=false
{
  "query": {
   "bool": {
      "filter": [
        { "term": { "recordType": "video"   }}
      ],
      "must_not": [
        {"exists": {"field":"startAt"}
      }]
    }
  }
}

2./_task?detailed查看任务状态

GET /_tasks?detailed=true&actions=*/delete/byquery

3./_task/_cancel取消任务

POST /_tasks/_cancel?actions=*/delete/byquery

4.sql语句统计剩余条数

GET _sql?format=csv
{
  "query": """
  select count(*)  from user_profile_daily where recordType='video' and startAt is not null limit 10
  """
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值