Elasticsearch Delete-By-Query



Elasticsearch Delete-By-Query

Opster Team

July 2020, Version: 1.7-7.9


In addition to reading this guide, run the free Elasticsearch Health Check-Up. Get actionable recommendations that can improve performance and prevent incidents (does not require any installation). Among the dozens of checks included are: shards sizes, search errors, thread pools, management queue size, circuit breakers and many more. Join over 700 users who use this free tool.

 

Delete-By-Query in Elasticsearch

 

Delete-by-query is an Elasticsearch API, which was introduced in version 5.0 and provides functionality to delete all the documents based on the matching 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 the matching query. Once the query is executed, Elasticsearch runs the process in the background to delete all the matching documents and 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:

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


Exception trying to setParsedQuery
Error when trying to query fileLength
Tried to query fileLength but file is gone
Unable to execute the graph query
Unexpected error creating default query
OnQueryPhase listener failed
OnPreQueryPhase listener failed
DeleteByQuery for indices timed out.
failures and conflicts encountered while running DeleteByQuery on indices .
Failed to add query
Failed to add query parser returned null
Scroll request failed; scrolling document(s) is stopped

< Page: 1 of 2 >




Improve Elasticsearch Performance

Run The Analysis