You are looking at preliminary documentation for a future release.
Not what you want? See the
current release documentation.
Delete By Query APIedit
The delete by query API allows one to delete a given set of documents based on the result of a query:
BulkIndexByScrollResponse response = DeleteByQueryAction.INSTANCE.newRequestBuilder(client) .filter(QueryBuilders.matchQuery("gender", "male")).source("persons")
.get();
long deleted = response.getDeleted();
As it can be a long running operation, if you wish to do it asynchronously, you can call execute
instead of get
and provide a listener like:
DeleteByQueryAction.INSTANCE.newRequestBuilder(client) .filter(QueryBuilders.matchQuery("gender", "male")).source("persons")
.execute(new ActionListener<BulkIndexByScrollResponse>() {
@Override public void onResponse(BulkIndexByScrollResponse response) { long deleted = response.getDeleted();
} @Override public void onFailure(Exception e) { // Handle the exception } });