日期处理器
编辑日期处理器
编辑从字段中解析日期,然后将日期或时间戳用作文档的时间戳。默认情况下,日期处理器会将解析后的日期添加为名为 @timestamp
的新字段。您可以通过设置 target_field
配置参数来指定不同的字段。同一个日期处理器定义支持多种日期格式。它们将按顺序使用,尝试解析日期字段,顺序与它们在处理器定义中定义的顺序相同。
表 11. 日期选项
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
|
是 |
- |
从中获取日期的字段。 |
|
否 |
@timestamp |
将保存解析后的日期的字段。 |
|
是 |
- |
预期日期格式的数组。可以是 java 时间模式 或以下格式之一:ISO8601、UNIX、UNIX_MS 或 TAI64N。 |
|
否 |
UTC |
解析日期时使用的时区。支持 模板片段。 |
|
否 |
ENGLISH |
解析日期时使用的区域设置,与解析月份名称或星期几相关。支持 模板片段。 |
|
否 |
|
将日期写入 |
|
否 |
- |
处理器的描述。有助于描述处理器的目的或其配置。 |
|
否 |
- |
有条件地执行处理器。请参阅 有条件地运行处理器。 |
|
否 |
|
忽略处理器的故障。请参阅 处理管道故障。 |
|
否 |
- |
处理处理器的故障。请参阅 处理管道故障。 |
|
否 |
- |
处理器的标识符。有助于调试和指标。 |
这是一个根据 initial_date
字段将解析后的日期添加到 timestamp
字段的示例
{ "description" : "...", "processors" : [ { "date" : { "field" : "initial_date", "target_field" : "timestamp", "formats" : ["dd/MM/yyyy HH:mm:ss"], "timezone" : "Europe/Amsterdam" } } ] }
timezone
和 locale
处理器参数是模板化的。这意味着它们的值可以从文档中的字段中提取。以下示例展示了如何从已存在的字段 my_timezone
和 my_locale
中提取区域设置/时区详细信息,这些字段包含摄入文档中的时区和区域设置值。
{ "description" : "...", "processors" : [ { "date" : { "field" : "initial_date", "target_field" : "timestamp", "formats" : ["ISO8601"], "timezone" : "{{{my_timezone}}}", "locale" : "{{{my_locale}}}" } } ] }
文本日期格式接受的文本字符串,以及周日期的计算,取决于 Elasticsearch 运行的 JDK 版本。有关更多信息,请参阅 自定义日期格式。