在 kibana 中切换索引模式的时间字段,而不会丢失脚本字段或字段格式

Ole*_*siy 5 elasticsearch kibana kibana-4

当基于时间的索引添加到 kibana 时,您必须选择将充当时间字段的字段。如果你想从一个字段切换到另一个字段,通常我会删除索引并重新添加回来。但您最终会以这种方式丢失脚本化字段和归档格式。

有没有办法修改现有的索引时间字段而不丢失脚本字段/格式?

它可能可以通过直接搞乱来完成/.kibana/index-pattern/index_pattern_name,但我所有直接更改的尝试timeFieldName最终都放弃了脚本化字段。

Jul*_*eam 13

这是在 Kibana 7.7.0(弹性云)上对我有用的方法:

  1. 找到标题字段与您要更改的索引相对应的文档的 {_id}
GET .kibana/_search
{
  "query": {
    "match": {
      "index-pattern.title": "{INDEX_PATTERN_PATTERN_VALUE}"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

其中{INDEX_PATTERN_PATTERN_VALUE}是实际模式,例如"my-logs-*"

  1. 复制_id字段值并使用以下代码更改时间字段({_id}用值替换)
POST .kibana/_update/{_id}
{
  "doc": {
    "index-pattern": {
      "timeFieldName" : "{NEW_TIME_FIELD_NAME}"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


Ole*_*siy 2

最简单的方法似乎是更新相应的文档:

POST /.kibana/index-pattern/YOUR_INDEX_NAME/_update
{
    "doc": {
        "timeFieldName": "NEW_TIME_FIELD_NAME"
    }
}
Run Code Online (Sandbox Code Playgroud)

它应该保留脚本字段。