从弹性搜索中删除或删除旧数据

时间:2015-12-09 03:00:51

标签: elasticsearch elasticsearch-plugin

  

如何从弹性搜索索引中删除旧数据,因为索引每天都会插入大量数据。

3 个答案:

答案 0 :(得分:9)

您可以使用delete by query插件执行此操作。

假设您的索引中有一些timestampcreation date字段,您的查询将如下所示

DELETE /your_index/your_type/_query
{
  "query": {
    "range": {
      "timestamp": {
        "lte": "now-10y"
      }
    }
  }
}

这将删除超过10年的记录。

我希望这会有所帮助

答案 1 :(得分:6)

将数据拆分为每日索引,并使用别名作为旧索引名称。然后每天删除每个索引。就像logstash一样:

每日指数:logstash-20151011logstash-20151012logstash-20151013

完全别名:logstash

然后每天删除最后一个索引。

答案 2 :(得分:0)

如果您使用基于时间的索引,则应该类似于:

curl -XDELETE http://localhost:9200/test-2017-06