我的 Elasticsearch 文档中有一个日期字段。 我正在该领域进行聚合。
这是我的查询
GET _search
{
"size": 0,
"aggregations": {
"timeslice": {
"histogram": {
"script": "doc['ad_inTime'].date.getHourOfDay()",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"order": {
"_key": "desc"
},
"offset":0
}
}
}
}
现在我想在这一行中传递时区信息(偏移量或时区名称 - 以有效者为准):
"script": "doc['ad_inTime'].date.getHourOfDay()",
并将日期调整为时区。有什么办法可以做到吗?
最佳答案
您可以将时区作为参数传递给脚本,如下所示:
{
"size": 0,
"aggregations": {
"timeslice": {
"histogram": {
"script": {
"inline": "doc['openDate'].date.setZone(DateTimeZone.forID(tz)); doc['openDate'].date.getHourOfDay()",
"params": {
"tz": "Europe/London"
}
},
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"order": {
"_key": "desc"
},
"offset": 0
}
}
}
}
关于java - 将时间调整为时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40151552/