使用java中的elasticSearch 2.3.3按索引名称和类型删除索引
我在java中有一个项目,我使用弹性搜索2.3.3索引数据.索引有两种类型. 我的索引文档看起来像:
我需要删除特定名称的索引和类型. 例如: – 从上面的doc,我想删除名为“test_index”的索引并输入“drama”. 所以结果应该是这样的:
解决方案: client.admin().indices().delete(new DeleteIndexRequest(“test_index”).actionGet(); 但它删除名为“test_index”的两个索引 我也在感测beta插件中尝试了各种查询,例如: DELETE / test_index / drama 它给出了错误:找不到uri [/ test_index / drama]和方法[DELETE]的处理程序 DELETE / test_index / drama / _query?q = _id:*& analyze_wildcard = true 它也行不通. 当我在那时触发删除索引请求时,我们不知道索引的id,我只能按名称和类型删除索引. 如何使用java api删除所需的索引? 最佳答案
这曾经是使用删除映射API直到ES 2.0,但是因为2.0 Delete Mapping API不再存在.
为此,您必须安装Delete by Query插件.然后,您可以简单地对索引和类型进行匹配所有查询,然后删除所有这些查询. 查询将如下所示:
还要记住,这将删除映射中的文档而不是映射本身.如果您想要删除映射,则必须在没有映射的情况下重新索引. This可能能够帮助您实现java实现 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |