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

小蕊 发表于: 2016-11-22   最后更新时间: 2017-01-08  
  •   0 订阅,532 游览

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

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

sudo bin/plugin install delete-by-query

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

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

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

3.执行删除命令

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

4.合并

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

大功告成







发表于: 7月前   最后更新时间: 5月前   游览量:532
上一条: logstash自定义正则表达式
下一条: ElasticSearch定时删除数据
评论…

  • 评论…
    • in this conversation
      提问