
我在java中有一个项目,我使用d性搜索2.3.3索引数据.索引有两种类型.
我的索引文档看起来像:
{ "took": 10,"timed_out": false,"_shards": { "total": 1,"successful": 1,"Failed": 0 },"hits": { "total": 3,"max_score": 1,"hits": [ { "_index": "test_index","_type": "movIEs","_ID": "uReb0g9KSLKS18sTATdr3A","_score": 1,"_source": { "genre": "Thriller" } },{ "_index": "test_index","_type": "drama","_ID": "cReb0g9KSKLS18sTATdr3B","_source": { "genre": "SuperNatural" } },{ "_index": "index1","_ID": "cReb0g9KSKLS18sT76ng3B","_source": { "genre": "Romance" } } ] }}例如: – 从上面的doc,我想删除名为“test_index”的索引并输入“drama”.
所以结果应该是这样的:
{ "took": 10,"hits": { "total": 2,"_source": { "genre": "Romance" } } ] }}解决方案:
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插件.然后,您可以简单地对索引和类型进行匹配所有查询,然后删除所有这些查询.
查询将如下所示:
DELETE /test_index/drama/_query{ "query": { "query": { "match_all": {} } }}还要记住,这将删除映射中的文档而不是映射本身.如果您想要删除映射,则必须在没有映射的情况下重新索引.
This可能能够帮助您实现java实现 总结
以上是内存溢出为你收集整理的使用java中的elasticSearch 2.3.3按索引名称和类型删除索引全部内容,希望文章能够帮你解决使用java中的elasticSearch 2.3.3按索引名称和类型删除索引所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)