We are working on updating this book for the latest version. Some content might be out of date.
The syntax for deleting a document
follows the same pattern that we have seen
already, but
uses the DELETE
method :
DELETE /website/blog/123
If the document is found, Elasticsearch will return an HTTP response code
of 200 OK
and a response body like the following. Note that the _version
number has been incremented:
{ "found" : true, "_index" : "website", "_type" : "blog", "_id" : "123", "_version" : 3 }
If the document isn’t
found, we get a 404 Not Found
response code and
a body like this:
{ "found" : false, "_index" : "website", "_type" : "blog", "_id" : "123", "_version" : 4 }
Even though the document doesn’t exist (found
is false
), the
_version
number has still been incremented. This is part of the internal
bookkeeping, which ensures that changes are applied in the correct order
across multiple nodes.
As already mentioned in Updating a Whole Document, deleting a document doesn’t immediately remove the document from disk; it just marks it as deleted. Elasticsearch will clean up deleted documents in the background as you continue to index more data.