在该线程中已经解决了同类问题。
为使解决方案适应您的问题,我们需要编写一个脚本以将日期转换为一天中的小时:
Date date = new Date(doc['created_at'].value) ;
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('HH');
format.format(date)
并在查询中使用它:
{
"aggs": {
"perWeekDay": {
"filter" : {
"range" : {
"occurred" : {
"gt" : "Now-1M"
}
}
},
"aggs": {
"terms": {
"script": "Date date = new Date(doc['created_at'].value) ;java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('HH');format.format(date)"
}
}
}
}
您一天中的流量就很大。
将小时/天/分钟存储在文档中是进行此类汇总的最有效方法。我的答案假设您不想存储该信息。脚本通常效率不高。