[[delete-by-query]]
== Delete By Query API

deprecated[1.5.3, "Delete by Query will be removed in 2.0: it is problematic since it silently forces a refresh which can quickly cause OutOfMemoryError during concurrent indexing, and can also cause primary and replica to become inconsistent.  Instead, use the <<search,scroll/scan API>> to find all matching ids and then issue a bulk request to delete them.]

The delete by query API allows one to delete documents from one or more
indices and one or more types based on a <<query-dsl-queries,query>>. Here
is an example:

[source,java]
--------------------------------------------------
import static org.elasticsearch.index.query.FilterBuilders.*;
import static org.elasticsearch.index.query.QueryBuilders.*;

DeleteByQueryResponse response = client.prepareDeleteByQuery("test")
        .setQuery(termQuery("_type", "type1"))
        .execute()
        .actionGet();
--------------------------------------------------

For more information on the delete by query operation, check out the
{ref}/docs-delete-by-query.html[delete_by_query API]
docs.
