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