elasticsearch批量删除数据

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

    使用es Note for ES2+批量删除数据,需要安装delete-by-query插件,集群环境只需安装到一台Node节点上,安装方法如下两种:

   注:delete-by-query插件的版本,需要与es的版本怎么对应,否则es会启动不成功,当es存储数据的硬盘空间不足85%时,实际不到85%,数据不会再分片,此时去删除数据是删除不了

  1、在线安装

   sudo bin/plugin install delete-by-query

安装完后需要重启es服务

#  wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/delete-by-query/2.3.5/delete-by-query-2.3.5.zip

# unzip delete-by-query-2.3.5.zip

# cp -r *  /applications/elasticsearch-2.3.5/

[root@htc plugins]

# ls /applications/elasticsearch-2.3.5/plugins/delete-by-query/
delete-by-query-2.3.5.jar  plugin-descriptor.properties

安装完插件后需要重启es

#统计大于时间的数量
curl -XGET “192.168.1.16:9200/app/_count?pretty” -d “{
    “query”:{
        “range”:{
            “queryTime”:{
                “lte” : “1506493824”
            }
        }
    }
}”

#查看索相字段类型

curl -XGET “192.168.1.16:9200/app/_mapping?pretty”

删除数据脚本

#!/bin/shindex_name="app"deldays="1506502200000" /usr/bin/curl -XDELETE "192.168.1.16:9200/${index_name}/_query?pretty" -d "{    "query":{    	"filtered": {    		"filter": {    			"bool": {    				"must": {    					"range":{					        "queryTime":{					            "lte":${deldays}					        }					    }    				}    			}    		}    	}    }}"  >> esdeldata.log

通过js获取时间戳

new Date(“2017-09-28 15:30:30”).getTime();
1506492264000

curl -XDELETE http://localhost:9200/.kibana

通过脚本批量删除索引

#!/bin/bashindex=$1 curl -XDELETE http://localhost:9200/${index}-*if [ $? == 0 ];then   echo "删除${index}成功"fi

点这里可以跳转到人工智能网站

发表评论