elasticsearch2.1删除索引数据的问题

黑夜中的一点慰藉 2016-01-26 08:14:55
现在我用的2.1版本的,使用的java客户端。
想要实现,根据index和type来删除索引数据,就是删除一个索引下同一个type下的全部索引数据。

我网上找了下以前的版本都有deleteByQuery(),prepareDeleteByQuery()等方法可以实现,
但是现在2.1的版本好像只能通过index、type、id三个变量来删除。
求助解决办法?????

(没分了,别介意,全部查出数据在根据id删,这个不好)
...全文
4806 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也碰到一样的问题了,我觉得这个还蛮常用的功能啊,删除索引并清除此索引下面所有源数据。 场景是这样的,之前是设置type的ttl,通过ES本身去删除,但是好像在大量删除的时候会引起GC问题,另外,这样做数据会删除,索引会留下。现在我们需要自己控制索引及其数据的定时删除,所以应该使用什么API呢? 蟹蟹
蜡笔小瑤 2016-06-28
  • 打赏
  • 举报
回复
我最近刚研究了下 SpringDataElasticSearch 你可以看看 那个比较方便。。内部实现源码还没细看。。用elasticTemplate挺方便的
井中月_hhh 2016-04-01
  • 打赏
  • 举报
回复
我也在找这个,后来,我去看了1.7的文档。 发现 1.7是最后 有这个方法的。 1.7之后 jdk 就删掉了。 原因是 他会 强制刷新 然后会是内存 溢出什么什么的。 地址 在这里: https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.7/delete-by-query.html 最终答案就是 use the scroll/scan API to find all matching ids and then issue a bulk request to delete them.. 我没翻译错误的话。是用 scroll 去找,然后再批量删除。。 天哪。。。。。。。。。
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
月色无痕 2016-01-27
  • 打赏
  • 举报
回复
AdminClient ac= client.admin(); DeleteIndexRequestBuilder de = ac.indices().prepareDelete(new String[]{"name","type"}); DeleteIndexResponse res = de.execute().actionGet(); 试下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧