我想看看一天中按小时划分的直方图。
问题出在 * 时区 *:如果我把一个文档放在美国的上午8点和欧洲的上午8点,我有不同的时区,但在图表中,我想把它们聚集在同一个小时。
因此,我的结果应该是上午8点2个文档计数
我的实际数据:
[
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"my_time" : "2021-09-17T08:00:00.000-04:00",
"value" : 1
}
},
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"my_time" : "2021-09-17T08:00:00.000+02:00",
"value" : 2
}
},
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"my_time" : "2021-09-17T03:00:00.000-04:00",
"value" : 3
}
},
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "4",
"_score" : 1.0,
"_source" : {
"my_time" : "2021-09-17T04:00:00.000-08:00",
"value" : 4
}
},
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "5",
"_score" : 1.0,
"_source" : {
"my_time" : "2021-09-17T23:00:00.000+04:00",
"value" : 5
}
}
]
在Map中
"my_time": {
"type": "date"
}
我的疑问:
POST /test_index/_search?size=0
{
"aggs": {
"my_results": {
"date_histogram": {
"field": "my_time",
"calendar_interval": "1h"
}
}
}
}
但是结果是令人担忧的!2!3例如:
"buckets" : [
{
"key_as_string" : "2021-09-17T06:00:00.000Z",
"key" : 1631858400000,
"doc_count" : 1
},
{
"key_as_string" : "2021-09-17T07:00:00.000Z",
"key" : 1631862000000,
"doc_count" : 1
},
......
]
我该如何修复它?
1条答案
按热度按时间cwdobuhd1#
我也在纠结这个问题。
就我所见,最简单的解决方案似乎是创建两个不同的日期时间字段,一个存储UTC日期时间,另一个存储本地时间(作为“假”UTC日期时间)。然后,您可以使用本地时间字段按小时进行聚合,使用UTC字段进行标准搜索查询。
但是,老实说,在我看来更像是一个变通办法,而不是一个适当的解决方案...