我有以下几点建议 interval=week
以及 min_doc_count=0
```
{
"aggs": {
"scores_by_date": {
"date_histogram": {
"field": "date",
"format": "yyyy-MM-dd",
"interval": "week",
"min_doc_count": 0
}
}
}
和日期过滤器 `Jan-01-2015` 至 `Feb-23-2015` ```
{
"range": {
"document.date": {
"from": "2015-01-01",
"to": "2015-02-23"
}
}
}
我希望elasticsearch即使是空的,也能填满七个星期的时间,并返回一个桶,但最终只有一个项目在里面
{
"aggregations": {
"scores_by_date": {
"buckets": [
{
"key_as_string": "2015-01-05",
"key": 1420416000000,
"doc_count": 5
}
]
}
}
}
``` `Elasticsearch version: 1.4.0` 我的聚合有什么问题,或者如何使用elasticsearch来填充缺失的周数?
1条答案
按热度按时间tnkciper1#
您可以尝试指定扩展边界(官方文档页面上有文档讨论了直方图聚合的这一特性)。这些文件中最相关的要点是:
使用extended\u bounds设置,您现在可以“强制”直方图聚合开始在特定的最小值上构建bucket,并继续在最大值上构建bucket(即使不再有文档)。只有当mindoc\u计数为0时,使用扩展的\u界限才有意义(如果mindoc\u计数大于0,则永远不会返回空存储桶)。
因此,您的聚合可能必须如下所示,以强制es返回该范围内的空桶: