Delete all documents from index without deleting index

elasticsearch, elasticsearch-dsl

Solution

I believe if you combine the delete by query with a match all it should do what you are looking for, something like this (using your example):

curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : { 
        "match_all" : {}
    }
}'

Or you could just delete the type:

curl -XDELETE http://localhost:9200/twitter/tweet

Note: `XDELETE` is deprecated for later versions of ElasticSearch

Problem

I know one can delete all documents from a certain index via deleteByQuery. Example: ``` curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "term" : { "user" : "kimchy" } } }' ``` But i have NO term and simply want to delete all documents from that index, no matter what term. What is best practice to achieve this? Empty term does not work. Link to deleteByQuery

Original source