标签:聚合 min histogram 时间 date ES
在做项目中,有一个需求是统计本周内每天的漏洞数量,我选用的是ES中的date_histogram函数来进行聚合统计;
但是出现了一个问题,聚合出来的结果和想要统计的结果时间不一致,如下图所示
时间区间过滤8号到14号,应该显示7个时间段,结果却显示出8个时间段分别是7号-14号。
经过排查发现是ES在聚合时的时区问题,ES做时间聚合时自身不是东八区时间(中国时间),需要offset属性减8小时,
extended_bounds属性里的min和max参数各加8小时才能统计正确,如下图所示
附代码:
"size": 0,
"query": {
"bool": {
"filter": {
"range": {
"lOccurTime": {
"gte": 1612713600000,
"lte": 1613318399000
}
}
}
}
},
"aggs": {
"rh": {
"date_histogram": {
"field": "lOccurTime",
"interval": "day",
"offset": "-8h",
"min_doc_count": 0,
"extended_bounds": {
"min": 1612742400000,
"max": 1613347199000
}
}
}
}
标签:聚合,min,histogram,时间,date,ES
来源: https://www.cnblogs.com/ranhong/p/14411363.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。