如何删除elasticsearch中的文档类型?

时间:2013-05-14 14:46:38

标签: elasticsearch

我使用指定的文档类型“mytype”创建索引“myindex”。我能够删除索引,但似乎“mytype”仍然存在而不依赖于索引。

如何摆脱“mytype”?

4 个答案:

答案 0 :(得分:43)

如果您确实删除了索引,则此索引中的映射不应再存在。 您的群集中是否有任何其他索引具有类似的类型名称?

要回答问题:How to delete document types in elasticsearch?,请使用Delete Mapping API

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

编辑:从elasticsearch 2.0开始,它将不再可能。见Mapping changes。您必须安装Delete By Query plugin并运行一个查询,该查询将删除您的文档,但映射仍然存在。因此,最好在没有旧类型的情况下将文档重新索引到另一个索引中。

但正如@mguillemin和@javanna所说,当你删除索引时,附加到这个索引的每个映射也会被删除:

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

答案 1 :(得分:6)

您可以使用_delete_by_query路径删除类型。

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

如需进一步阅读,请参阅docs

答案 2 :(得分:3)

在最新版本的弹性搜索中,他们不再支持删除文档类型。它在documentation

中提到过
  

不再可以删除类型的映射。相反,你   应删除索引并使用新映射重新创建它。

答案 3 :(得分:1)

您甚至不需要指定请求正文。刚

curl -XPOST http://<host>:9200/<index>/<type>/_delete_by_query