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

标签 elasticsearch curl logstash kibana elasticsearch-curator

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

curl -XDELETE http://localhost:9200/index_name

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

我尝试使用 curator 删除.

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

如果我知道以下任何一个都行得通,我会很高兴:

  • Curl 能否在一段时间后自动从索引中删除数据?
  • curator 能否在一段时间后自动从索引中删除数据?
  • 是否有其他方法(例如 python 脚本)来完成这项工作?

引用资料取自elasticsearch官网.

非常感谢。

最佳答案

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

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

POST twitter/_delete_by_query
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

但建议的方法是为不同的时间段(例如天)实现索引,并使用 curator 根据 age 定期删除它们:

...
logs_2019.03.11
logs_2019.03.12
logs_2019.03.13
logs_2019.03.14

关于elasticsearch - 如何在一段时间后从elasticsearch中的特定索引中删除数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159391/

相关文章:

elasticsearch - 删除 ElasticSearch 2.x 中某种类型的所有文档

elasticsearch - 我想对Elasticsearch中的URL使用通配符查询。我正在使用Elasticsearch 2.3.0

javascript - 如何通过php加载外部文件

elasticsearch - ElasticSearch Logstash上传日期的空值

amazon-web-services - 在 logstash 中将输出配置为 elasticsearch

search - 使用“stop”时,在Elasticsearch中“_all”过滤器的行为有所不同

elasticsearch - 如何在一个ElasticSearch查询中获取多个字段的百分位数

Java:HtmlUnit 效率 relacing PHP CURL?

php - 使用 PHP 5.6 无法为 Ubuntu 16.04.3 加载 cURL

elasticsearch - 如何从具有特定请求值的搜索查询中排除结果?