首先要说明的是现在的Elasticsearch已经不支持删除一个type了,所以使用delete命令想要尝试删除一个type的时候会出现如下错误,如果存在一个名为edemo的index和tets的type:
No handler found for uri [/edemo/test] and method [DELETE]
所以现在如果想要删除type有两种选择:
1.重新设置index。
2.删除type下的所有数据。
如果是重新设置index的话,官方建议
Delete Mappingedit
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.
如果是想要删除type下的所有数据的话,可以使用delete by query的方法,本人在网上查到的都是安装delete-by-query插件,弄了半天也弄不好,最后发现现在的版本根本没有这个插件了也不需要这个插件了。
edemo下的test中有两条数据:
想要一次性删除test下的所有数据内容的话,可以参考官方文档:
其中有介绍到可以使用如下命令删除一个type下的所有数据信息:
POST edemo/test/_delete_by_query?conflicts=proceed
{
"query": {
"match_all": {}
}
}
并不需要插件,直接执行该条命令就可以进行删除了:
本文介绍了Elasticsearch中不再支持直接删除Type的操作,并提供了两种替代方案:重新设置Index或者删除Type下所有数据。对于后者,详细说明了如何使用_delete_by_query命令来实现这一目标。

2737

被折叠的 条评论
为什么被折叠?



