elasticsearch2.4.1只提供了按id删数据的api,不适合批量删除,但是有一个插件 delete-by-query 可以帮忙做这件事,下载地址:
下载后解压缩到 elasticsearch-2.4.1/plugins/delete-by-query 目录下,然后重启 elasticsearch,之后就可以执行批量删除语句了
先查询
# curl -XPOST 'http://localhost:9200/test/log/_count?pretty' -d '{
> "query": {
> "range": {
> "createTime": {
> "lt": "2018-06-01 00:00:00.0"
> }
> }
> }
> }'
{
"count" : 2439024,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}
然后再执行删除语句
curl -XDELETE 'http://localhost:9200/test/log/_query?pretty' -d '{
"query": {
"range": {
"createTime": {
"lt": "2018-06-01 00:00:00.0"
}
}
}
}'
执行完成后,再执行查询语句,验证符合条件的数据都删除了。
本文内容到此结束,更多内容可关注公众号