elasticsearch - 将字段编号转换为 kibana 上的日期,弹性搜索
问题描述
我通过 Kibana 在 Elasticsearch 上有一个字段编号。
这是一个示例字段:
"insert.datePeticio:1,546,185,770,733"
为了可视化目的,我需要将此字段转换为日期。
如何将其解析为日期模式?
解决方案
据我了解,您在 Elasticsearch 上有一个整数字段,它以自纪元以来的毫秒数存储日期/时间。您想将其转换为适当的日期类型以在 Kibana 上正确显示。在这种情况下,我会推荐两种解决方案:
1)如果您能够定义映射,请使用以下insert.datePeticio
字段:
"mappings": {
"_doc": {
"properties": {
"insert.datePeticio": {
"format": "epoch_millis",
"type": "date"
}
}
}
}
这允许 Kibana 将insert.datePeticio
字段定义和表示为日期,即使实际值以毫秒为单位存储为 Elasticsearch 上的整数。
2)如果没有,那么无法对原始映射做任何更改,在 Kibana 上创建一个脚本字段,如下所示:
- 转到管理 > 索引模式
- 选择要修改的索引模式
- 选择索引模式的脚本字段选项卡
- 单击添加脚本字段
- 参考下图填写表格,然后保存。
如果您转到Kibana > Discover,您可以看到两个字段以不同的表示形式和类型一起显示:insert.datePeticio: 1,546,185,770,733
和insert.datePeticio_UTC:December 30th 2018, 16:02:50.733
。由于是日期类型,因此脚本化字段insert.datePeticio_UTC
可轻松用于基于日期聚合创建可视化。
注意:脚本字段根据您的 Elasticsearch 索引中的数据动态计算数据。请记住,使用脚本字段动态计算数据可能会占用大量资源,并且会对 Kibana 的性能产生直接影响。
推荐阅读
- python - 错误 NOT NULL 约束失败:使用 3 个模型(外键)自定义表单 django-all-auth
- c - gcc-10.0.1 特定的段错误
- java - 从 SwingWorker 调用 done 方法时是否必须使用 Runnable.run
- java - 如何在for循环中向空字符串添加值?
- android - 出现错误说 - “条目名称 'res/layout/test_toolbar.xml' 碰撞”,同时创建签名的 apk
- java - MappedByteBuffer(在 Android Studio 中)构造函数损坏(超级构造函数损坏)
- google-cloud-firestore - 了解 Firebase Cloud Firestore 计费
- python - 如何将 csv 文件格式加载到 jupyter notebook?
- android - 自Android Q以来,如何将文件保存到具有范围存储的外部存储中,同时与android中的旧api级别兼容?
- google-chrome - 浏览器 MS Edge:如何从控制台导航到 DOM