es 7.4.0 详解删除记录的方法

_delete_by_query 命令是删除记录

post 请求:http://localhost:9200/index/_delete_by_query

注:
删除也是先走和查询一样的语法,只是最后的命令是 删除的命令

{
  "query":{
    "term":{
      "bookId":1
    }
  }
}

这是清空

{
    "query": {
        "match_all": {}
    }
}

在这里插入图片描述
删除后返回:

{
    "took": 42,
    "timed_out": false,
    "total": 1,
    "deleted": 1,
    "batches": 1,
    "version_conflicts": 0,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1,
    "throttled_until_millis": 0,
    "failures": []
}
其中 deleted:1 代表删除成功

延伸阅读:

https://www.jianshu.com/p/60a6ad164035

_delete_by_query 边搜索边删除,没有事务功能,可能会出现删了一半留下一半的情况

 

https://elasticsearch.cn/question/6850

使用_delete_by_query为什么磁盘占用反而升高了?

采用的是标记清除的方法,就是不是马上回收控件,等到后面会自动触发merge合并segment时才会回收,也可以手动触发合并动作,并且合并的过程时,先将旧的segment文件中的数据复制到新的segment中,等复制完成之后,才会将旧的segment文件删除,因此磁盘占用反而会升高。并且每个删除任务都会创建一个删除日志文件来记录删除进度

 

https://blog.csdn.net/zhinengyunwei/article/details/104037864

ES 数据节点磁盘使用不均匀的原因?

是各节点平均分布分片数的策略,不同分片的数据量如果不一致就会导致磁盘占用不一致;并且如果主分片的数量如果跟数据节点的数量不一致,也会导致各个节点上的分片数量不一致,造成磁盘占用不均匀。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值