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

时间:2017-01-06 18:40:46

标签: elasticsearch kibana kibana-4

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

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

可以通过直接使用/.kibana/index-pattern/index_pattern_name进行操作来完成,但我改变timeFieldName的所有尝试都会直接删除脚本字段。

3 个答案:

答案 0 :(得分:2)

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

  1. 找到其标题字段与您要更改的索引相对应的文档的{id}
GET .kibana/_search
{
  "query": {
    "match": {
      "index-pattern.title": "{NAME_OF_THE_INDEX}"
    }
  }
}
  1. 使用以下代码更改时域
POST .kibana/_update/{id}
{
  "doc": {
    "index-pattern": {
      "timeFieldName" : "{NEW_TIME_FIELD_NAME}"
    }
  }
}

答案 1 :(得分:1)

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

POST /.kibana/index-pattern/YOUR_INDEX_NAME/_update
{
    "doc": {
        "timeFieldName": "NEW_TIME_FIELD_NAME"
    }
}

它应该保留脚本字段。

答案 2 :(得分:1)

这似乎不适用于Kibana 5。 相反,以下是Kibana 5的工作方式。

<强> 1。找到title字段与您要更改的index对应的文档的{id}

GET .kibana/index-pattern/_search
{
  "_source" : "_id",
  "query" : {
    "match" : {
      "title": "{NAME_OF_THE_INDEX}"
    }
  }
}

<强> 2。使用以下代码更改时间区

POST /.kibana/index-pattern/{id}/_update
{
  "doc": {
    "timeFieldName" : "{NEW_TIME_FIELD_NAME}"
  } 
}

这对我在Kibana 5上运作良好。