如何从弹性搜索索引中删除旧数据,因为索引每天都会插入大量数据。
答案 0 :(得分:9)
您可以使用delete by query插件执行此操作。
假设您的索引中有一些timestamp
或creation date
字段,您的查询将如下所示
DELETE /your_index/your_type/_query
{
"query": {
"range": {
"timestamp": {
"lte": "now-10y"
}
}
}
}
这将删除超过10年的记录。
我希望这会有所帮助
答案 1 :(得分:6)
将数据拆分为每日索引,并使用别名作为旧索引名称。然后每天删除每个索引。就像logstash一样:
每日指数:logstash-20151011
,logstash-20151012
,logstash-20151013
。
完全别名:logstash
然后每天删除最后一个索引。
答案 2 :(得分:0)
如果您使用基于时间的索引,则应该类似于:
curl -XDELETE http://localhost:9200/test-2017-06