我有一个Elasticsearch索引,该索引使用@timestamp
字段将日期存储在date
字段中。
有许多记录缺少@timestamp
字段,但是有一个timestamp
字段包含unix时间戳。 (是从PHP生成的,所以是几秒钟,而不是毫秒)
请注意,timestamp
字段是日期类型,但是数字数据似乎存储在此处。
如何在重新索引中使用无痛脚本并将@timestamp
设置在缺少的地方, IF 有一个带有unix时间戳的数字timestamp
字段?
这是我要转换的示例记录。
{
"_index": "my_log",
"_type": "doc",
"_id": "AWjEkbynNsX24NVXXmna",
"_score": 1,
"_source": {
"name": null,
"pid": "148651",
"timestamp": 1549486104
}
},
答案 0 :(得分:0)
您看过Elasticsearch的{{3}}吗?
解析字段中的日期,然后将日期或时间戳记用作 文档的时间戳。默认情况下,日期处理器会添加 将日期解析为名为@timestamp的新字段。您可以指定一个 通过设置target_field配置参数来设置不同的字段。 同一日期处理器中支持多种日期格式 定义。它们将顺序用于尝试解析日期 字段,以相同的顺序将它们定义为处理器的一部分 定义。
它确实满足您的要求:)在您的重新索引语句中,您可以通过此提取处理器定向文档。
如果您需要更多帮助,请告诉我,然后我可以跳到电脑后面帮忙:D