我正在使用Elasticsearch一段时间,并希望使用Kibana可视化数据。由于我有时间序列数据,我从我的角度创建了一个---相应索引中合适的时间戳字段。索引映射的相关部分如下:
[..]
"properties": {
"@timestamp": {
"enabled" : true,
"type":"date",
"format": "date_hour_minute_second_millis",
"store": true,
"path": "@timestamp"
},
[..]
我玩过“格式”字段值,因为我希望可视化具有毫秒分辨率的数据。理想情况下,我只想使用我的应用程序中的原始时间戳(即Unix纪元时间,小数秒),但我无法让Kibana检测到该格式。目前,我发布的数据如下:
{
"@timestamp": "2015-03-10T14:37:42.644",
"name": "some counter",
"value": 91.76
}
Kibana将@timestamp字段检测为时间戳,但随后告诉我它找不到存储该字段的任何文档(这不是真的):
此字段存在于elasticsearch映射中,但不存在于搜索结果中的任何文档中。您仍然可以对其进行可视化或搜索。
我应该注意以前,我使用“dateOptionalTime”作为时间戳的格式,并且使用“简单”时间戳在Kibana中一切正常。但是,我现在需要切换到毫秒。
干杯!
答案 0 :(得分:0)
我也在努力解决这个非常模糊的问题。无论我如何改变映射,Kibana都不会显示某些字段。
然后我发现它与JVM堆大小有关,而Kibana无法显示每个字段“内存中”。
在映射期间将“doc_value”设置为true,以解决问题。
在Java API中,我正在构建包含doc_values选项
的以下映射XContentFactory.jsonBuilder()
.startObject()
.startObject("@memory-available")
.field("type", "integer")
.field("index","not_analyzed")
.field("doc_values", true)
.endObject()
.endObject();
在此处阅读更多内容:Doc Values in ES