Elasticsearch Delete By Query

By Opster Team

Updated: Jan 28, 2024

| 1 min read

Overview

Delete-by-query is an Elasticsearch API, which was introduced in version 5.0 and provides functionality to delete all documents that match the provided query. In lower versions, users had to install the Delete-By-Query plugin and use the DELETE /_query endpoint for this same use case.

What it is used for

This API is used for deleting all the documents from indices based on a query. Once the query is executed, Elasticsearch runs the process in the background to delete all the matching documents so you don’t have to wait for the process to be completed.

Examples

Delete all the documents of an index without deleting the mapping and settings:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
POST /my_index/_delete_by_query?conflicts=proceed&pretty
{
"query": {
"match_all": {}
}
}
POST /my_index/_delete_by_query?conflicts=proceed&pretty { "query": { "match_all": {} } }
POST /my_index/_delete_by_query?conflicts=proceed&pretty
{
  "query": {
    "match_all": {}
  }
}

The conflict parameter in the request is used to proceed with the request even in the case of version conflicts for some documents. The default conflict behavior is to abort the request altogether.

Notes

  • A long-running delete_by_query can be terminated using _task API.
  • Inside the query body, you can use the same syntax for queries that are available under the _search API.

Common problems

Elasticsearch takes a snapshot of the index when you hit delete by query request and uses the _version of the documents to process the request. If a document gets updated in the meantime, it will result in a version conflict error and the delete operation will fail.


Related log errors to this ES concept


Failed to add query - parser returned null
Scroll request failed scrolling document s is stopped
Unable to clear scroll id
Unable to execute scroll request
Unable to execute the initial scan request of delete by query
Unable to process bulk failure
Unable to process bulk response
Could not execute query template failed to close writer
Could not execute query template failed to flush writer
Opster
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.