我使用指定的文档类型“mytype”创建索引“myindex”。我能够删除索引,但似乎“mytype”仍然存在而不依赖于索引。
如何摆脱“mytype”?
答案 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