json - 在 elasticsearch 中删除超过 30 天的文档

标签 json windows elasticsearch logstash kibana

<分区>

我想删除 elasticsearch 索引中超过 30 天的文档。

有什么想法吗?

编辑:

我希望它自动发生 - 我的索引中的任何文档都不应超过 30 天。 因此,在我看来有 2 个选择:使用 curator 或 DELETE 请求。

我都试过了,但是我失败了。 当我使用 DELETE http 语句时,我必须以某种方式创建一个过滤器来过滤所有超过 30 天的文档并删除它们。

我试过馆长,但馆长(据我所知)只删除了整个索引。当试图删除超过 30 天的索引时,我的时间戳导致错误。我的 moment.js 模式看起来像这样“MMMM Do YYYY, HH:mm:ss.SSS”.

编辑 2: 我将以下内容添加到我的 logstash 配置中:

elasticsearch
    {
    hosts => ["http://localhost:9200"]
    index => "logstash-%{type}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
    }

所以 logstash 每天为每种类型创建一个特定的索引。 现在我可以使用 curator 删除早于特定日期的索引。

恕我直言,问题已解决。

最佳答案

您可以使用 DELETE 查询: https://www.elastic.co/guide/en/elasticsearch/reference/1.6/docs-delete-by-query.html 例如,查询将删除早于:2016-02-29 的所有内容

DELETE index_name/_query
{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "query": "*"
        }
      },
      "filter": {
        "range": {
          "@timestamp": {
            "lte": "2016-02-29"
          }
        }
      }
    }
  }
}

更新 >6.4

根据官方文档,该函数已被弃用并被_delete_by_query取代

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

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

关于json - 在 elasticsearch 中删除超过 30 天的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288078/

相关文章:

elasticsearch - 不可编辑的字段Elasticsearch

java - Elasticsearch 5 卡住从磁盘读取

elasticsearch - 当未为搜索提供对象名称时,嵌套过滤器返回错误结果

python - 从 None 获取 "raise JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError

mysql - JSON 更新 MySQL 表中的单个值

json - JacksonProviderProxy在json输出中写出空值

java - 如何将 JSON 数组映射/反序列化为 POJO 或 POJO 列表?

python - Winreg Python、QueryInfoKey 给出的上次更改的日期/时间不正确?

windows - 套接字对、perl、KEEPALIVE 和轮询

c++ - 如何禁止在 Windows MFC 应用程序中创建 .pf(预取)文件?