项目中碰到一个elasticsearch的purge需求,就是说在不删除index和type的前提下,清除其中的所有数据。
用es的delete by query api可以做到,尽管官方声明deprecated in 1.5.3,但是经过测试1.8还是可以用的(真不敢想象要是不能用了怎么办。。。连个purge的api都没有。。),语法如下:
1 | DELETE /<index>/<type>/\_query -d '{ |
简单来说就是根据查询条件查出所有符合条件的数据然后删掉,然后传入的查询条件是match_all。
注意DELETE /<index>/* 也可以删除所有数据,但相应的mapping也都没了,还不如重建索引。