ElasticSearch中根据查询结果删除数据(delete by query)

小蕊 发表于: 2016-11-22   最后更新时间: 2019-11-04 23:26:23  
{{totalSubscript}} 订阅, 9,886 游览

原有的方法在2.0版本中已经删除了,提供了delete by query插件来实现这个功能。这个插件的使用过程大致如下:

1.安装。打开命令行,切到Elasticsearch文件夹中,运行如下命令:

sudo bin/plugin install delete-by-query

成功安装后,结果如下:
screenshot

集群环境下必须在每个结点上安装,安装之后要重启结点才能使这个插件生效。

2.安装和重启之后就可以像2.0以前的版本一样使用delete by query了。

3.执行删除命令

curl -XDELETE 'https://10.0.21.xx:9200/applog/logs/_query?pretty' -d ' 
{
  "query": {
    "filtered": {
      "filter": {
        "range": {
          "@timestamp": {
            "lte": "2016-11-21"
          }
        }
      }
    }
  }
}'

4.合并

curl -XPOST 'https://10.0.21.xx:9200/applog/_optimize?max_num_segments=1'

大功告成

更新于 2019-11-04

查看ElasticSearch更多相关的文章或提一个关于ElasticSearch的问题,也可以与我们一起分享文章