如何从Elasticsearch索引中删除旧数据,因为每天都有大量数据插入到索引中。
timestamp
或者creation date
字段,那么你的查询语句应该长成这个样子。DELETE /your_index/your_type/_query
{
"query": {
"range": {
"timestamp": {
"lte": "now-10y"
}
}
}
}
这将删除10年前的记录。
希望这能帮到你。
cron job
每天执行,删除记录后它们不会被彻底清除,而是被标记为已删除,在段合并期间它们才会被真正地移除。在删除或更新后,你可能会看到索引大小的增加,你可以使用force merge来优化你的索引。 - ChintanShah25将数据拆分为每日索引,并使用别名作为旧索引名称。然后按每天删除每个索引,就像logstash一样:
每日索引:logstash-20151011
,logstash-20151012
,logstash-20151013
。
完整别名:logstash
然后每天都删除最后一个索引。
curl -XDELETE http://localhost:9200/test-2017-06