Search code examples
elasticsearchelasticsearch-dsl

Delete all documents from index without deleting index


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


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