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

pu82cl6c  于 2023-03-22  发布在  ElasticSearch
关注(0)|答案(3)|浏览(218)

当一个基于时间的索引被添加到kibana时,你必须选择将作为时间字段的字段。如果你想从一个字段切换到另一个字段,通常我会删除索引并重新添加回来。但是你最终会失去脚本字段和这样的格式。
是否有任何方法可以修改现有的索引时间字段而不丢失脚本字段/格式?
它可能可以通过直接使用/.kibana/index-pattern/index_pattern_name来完成,但我所有直接更改timeFieldName的尝试都以放弃脚本字段而告终。

ndh0cuux

ndh0cuux1#

这是我在Kibana 7.7.0(弹性云)上的工作:
1.查找其标题字段对应于要进行更改的索引的文档的{_id}

GET .kibana/_search
{
  "query": {
    "match": {
      "index-pattern.title": "{INDEX_PATTERN_PATTERN_VALUE}"
    }
  }
}

其中{INDEX_PATTERN_PATTERN_VALUE}是实际模式,例如 “my-logs-"*。
1.复制_id字段值,并使用以下代码更改时间字段(用值替换{_id}

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

iecba09b2#

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

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

它应该保留脚本字段。

bxgwgixi

bxgwgixi3#

这似乎在Kibana 5上不起作用。相反,以下是Kibana 5的工作方式。

1.查找title字段对应于要更改的index的文档的{id}

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

2.修改timefield,代码如下

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

这在Kibana 5上对我来说很好用。

相关问题