【发布时间】:2021-05-09 15:12:37
【问题描述】:
在我的索引中,我有一个名为 build duration 和 string 类型的字段,因为我想在折线图 Y-axis 中可视化 build_duration 的 average 我想选择 Average 但如果我选择它会显示 @ 987654330@ 因此,我希望创建脚本字段来计算构建持续时间平均值。目前以毫秒为单位 ("build_duration" => "6409651") 需要帮助才能转换为 HH:mm:ss 格式。已尝试以下
但它不工作。那么有人可以帮我解决这个问题吗?任何帮助将不胜感激。
脚本:
String millisecondsString = doc['build_duration.keyword'].value;
long milliseconds = 1000000;
long minutes = (milliseconds / 1000) / 60;
long seconds = (milliseconds / 1000) % 60;
ZoneId z = ZoneId.of("Z");
Instant instant = Instant.ofEpochMilli(milliseconds);
LocalDateTime l = LocalDateTime.ofInstant(instant, z);
return l;
预览结果
[
{
"_id": "37361323",
"build_duration": "1062735",
"test": [
"1970-01-01T00:16:40.000Z"
]
},
{
"_id": "37200499",
"build_duration": "1446172",
"test": [
"1970-01-01T00:16:40.000Z"
]
},
Kibana Discover 字段结果。
【问题讨论】:
-
您的
instant是如何定义的?似乎我们在这里遗漏了一些东西 -
目前它采用这种格式
"build_duration" => "6409651" -
我不是这个意思。
instant来自哪里:LocalDateTime.ofInstant(instant, z);? -
抱歉我错过了 -
Instant instant = Instant.ofEpochMilli(milliSinceEpoch); -
现在好了,
milliSinceEpoch定义在哪里?
标签: elasticsearch kibana elasticsearch-painless