我用指定的文档类型“mytype”创建了一个索引“myindex”。我可以删除索引,但似乎“mytype”仍然存在而未绑定到索引。
如何摆脱“我的类型”?
如果你真的删除了索引,那么这个索引中的映射应该不存在了。您的集群中是否还有其他具有相似类型名称的索引?
要回答这个问题:How to delete document types in elasticsearch?
,请使用Delete Mapping API:
curl -XDELETE http://localhost:9200/index/type
编辑:从 elasticsearch 2.0 开始,它就不可能了。请参阅映射更改。您必须安装Delete By Query 插件并运行一个查询,该查询将删除您的文档,但映射仍然存在。因此,最好在另一个没有旧类型的索引中重新索引您的文档。
但正如@mguillemin 和@javanna 所说,当您删除索引时,附加到该索引的每个映射也会被删除:
curl -XDELETE http://localhost:9200/index
您可以使用_delete_by_query
路径来删除类型。
POST index-name/type-name/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
如需进一步阅读,请参阅文档
在最新版本的弹性搜索中,它们不再支持删除文档类型。它在文档中提到
不再可能删除类型的映射。相反,您应该删除索引并使用新映射重新创建它。
您甚至不需要指定请求正文。只是
curl -XPOST http://<host>:9200/<index>/<type>/_delete_by_query