4

我是弹性搜索的新手,我想删除弹性搜索索引中超过 10 天的文档。我只想保留最后 10 天的数据。那么有什么方法可以自动删除最后 11 天的索引。我试过的..

DELETE logstash-*/_query
{
 "query": {
   "range": {
     "@timestamp": {
       "lte": "now-10d"
      }
    }
  }
}

在 kibana 开发工具上运行时出现错误

{
"error": "Incorrect HTTP method for uri [/logstash-*/_query?pretty] and method [DELETE], 
allowed: [POST]",
"status": 405
}

请帮助解决此问题。

4

2 回答 2

7

您需要利用Delete by Query Endpoint,如下所示:

use POST           use this endpoint
 |                      |
 V                      V
POST logstash-*/_delete_by_query
{
 "query": {
   "range": {
     "@timestamp": {
       "lte": "now-10d"
      }
    }
  }
}
  ^
  |
the query part is fine !!
于 2019-09-17T13:14:56.273 回答
1

我描述了不同的方法,然后@Val 提出了建议。您可以创建 10 个索引(每天索引)并每天删除一个索引 - 最旧的一个。

  • 优点:删除或归档旧数据非常容易
  • 缺点:如果您需要搜索全天数据,则需要重写查询。
于 2019-09-18T18:26:14.170 回答