如何在一段时间后从elasticsearch中的特定索引中删除数据?

ADA*_*H K 5 curl elasticsearch logstash kibana elasticsearch-curator

我在 elasticsearch 中有一个索引,它被一些与时间戳相关的json文件占用。我想从该索引中删除数据。

curl -XDELETE http://localhost:9200/index_name
Run Code Online (Sandbox Code Playgroud)

上面的代码删除了整个索引。我的要求是在一段时间后(例如 1 周后)删除某些数据。我可以自动执行删除过程吗?

我尝试使用curator删除。

但我认为它删除了创建的索引timestamp,而不是索引中的数据。我们可以使用 curator 删除索引中的数据吗?

如果我知道以下任一项可行,我会很高兴:

  • Curl Automate 可以在一段时间后从索引中删除数据吗?
  • curator Automate 可以在一段时间后从索引中删除数据吗?
  • 有没有像python脚本这样的其他方法来完成这项工作?

参考资料来自elasticsearch的官方网站。

非常感谢。

Enr*_*man 4

您可以使用DELETE BY QUERYAPI: https: //www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

基本上它将删除与所提供的查询匹配的所有文档:

POST twitter/_delete_by_query
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但建议的方法是针对不同时期(例如天)实施索引,并curator根据以下情况定期删除它们age

...
logs_2019.03.11
logs_2019.03.12
logs_2019.03.13
logs_2019.03.14
Run Code Online (Sandbox Code Playgroud)