How to delete document types in elasticsearch?

In the latest version of elastic search, they no longer support deleting document types. It's mentioned in the documentation

It is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings.


You can use _delete_by_query path to delete type.

POST index-name/type-name/_delete_by_query
{
    "query": { 
        "match": {
            "message": "some message"
        }
    }
}

For further reading see docs


If you really deleted the index, the mapping in this index should not exist anymore. Do you have any other index in your cluster with a similar type name?

To answer to the question: How to delete document types in elasticsearch?, use Delete Mapping API:

curl -XDELETE http://localhost:9200/index/type

EDIT: From elasticsearch 2.0, it won't be possible anymore. See Mapping changes. You will have to install the Delete By Query plugin and run a query which will remove your documents but the mapping will still exist. So it will most likely better to reindex your documents in another index without the old type.

But as @mguillemin and @javanna said, when you delete an index, every mapping attached to this index is deleted as well:

curl -XDELETE http://localhost:9200/index