bulk es 删除_Java Elasticsearch Delete By Query API 批量删除

Java ES Delete By Query API 主要用于批量删除操作,支持设置ES查询条件。

创建DeleteByQueryRequest对象

// 创建 DeleteByQueryRequest 对象,设置批量删除的索引名为:source1和source2

// ps: 支持同时操作多个索引

DeleteByQueryRequest request =

new DeleteByQueryRequest("source1", "source2");

版本冲突

批量更新内容的时候,可能会遇到文档版本冲突的情况,需要设置版本冲突的时候如何处理。

版本冲突解决方案如下:

proceed - 忽略版本冲突,继续执行

abort - 遇到版本冲突,中断执行

request.setConflicts("proceed");

设置查询条件

// 设置term查询条件,查询user字段=kimchy的文档内容

request.setQuery(new TermQueryBuilder("user", "kimchy"));

ES的查询语法是非常丰富的,这里仅给出一种写法,JAVA ES查询用法请参考后续的章节。

限制删除文档数量

可以限制批量删除文档的数量

request.setMaxDocs(10);

执行请求

BulkByScrollResponse bulkResponse =

client.deleteByQuery(request, RequestOptions.DEFAULT);

处理结果

TimeValue timeTaken = bulkResponse.getTook(); // 批量操作消耗时间

boolean timedOut = bulkResponse.isTimedOut(); // 是否超时

long totalDocs = bulkResponse.getTotal(); // 涉及文档总数

long deletedDocs = bulkResponse.getDeleted(); // 成功删除文档数量

long versionConflicts = bulkResponse.getVersionConflicts(); // 版本冲突次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值