【问题标题】:Reindex Elasticsearch converting unixtime to date重新索引 Elasticsearch 将 unixtime 转换为日期
【发布时间】:2019-06-06 22:44:00
【问题描述】:

我有一个 Elasticsearch 索引,它使用 @timestamp 字段将日期存储在 date 字段中。

有许多记录缺少@timestamp 字段,但有一个包含unix 时间戳的timestamp 字段。 (从 PHP 生成,所以是秒,不是毫秒)

注意,timestamp 字段是日期类型的,但数字数据似乎存储在那里。

如何在 reindex 中使用 Painless 脚本并将 @timestamp 设置为缺失的位置,如果有一个带有 unix 时间戳的数字 timestamp 字段?

这是我想要转换的示例记录。

  {
    "_index": "my_log",
    "_type": "doc",
    "_id": "AWjEkbynNsX24NVXXmna",
    "_score": 1,
    "_source": {
      "name": null,
      "pid": "148651",
      "timestamp": 1549486104
    }
  },

【问题讨论】:

    标签: elasticsearch elasticsearch-painless


    【解决方案1】:

    你看过 Elasticsearch 的 ingest module 了吗??

    https://www.elastic.co/guide/en/elasticsearch/reference/current/date-processor.html

    从字段中解析日期,然后使用日期或时间戳作为 文档的时间戳。默认情况下,日期处理器添加 将日期解析为一个名为 @timestamp 的新字段。您可以指定一个 通过设置 target_field 配置参数来设置不同的字段。 作为同一日期处理器的一部分,支持多种日期格式 定义。它们将按顺序用于尝试解析日期 字段,以相同的顺序将它们定义为处理器的一部分 定义。

    它完全符合您的要求 :) 在您的重新索引语句中,您可以通过这个摄取处理器引导文档。

    如果您需要更多帮助,请告诉我,然后我可以跳到电脑后面帮忙:D

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 2021-01-14
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多