Delete By Query接口
Delete By Query接口可以根据查询的结果删除一组文档:
BulkByScrollResponse response =
DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
//query
.filter(QueryBuilders.matchQuery("gender", "male"))
//index
.source("persons")
//执行操作
.get();
//返回删除了多少个文档
long deleted = response.getDeleted();
由于这个操作可能会运行很长时间,如果你希望异步执行,可以使用execute代替get来执行,并提供一个listener,如下:
DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
//query
.filter(QueryBuilders.matchQuery("gender", "male"))
//index
.source("persons")
//listener
.execute(new ActionListener<BulkByScrollResponse>() {
@Override
public void onResponse(BulkByScrollResponse response) {
//返回删除了多少个文档
long deleted = response.getDeleted();
}
@Override
public void onFailure(Exception e) {
// 处理异常
}
});