【发布时间】:2020-06-25 13:21:26
【问题描述】:
我想按日期获取平均文档计数,而不需要获取整个桶数据并手动获取平均值,因为有多年的数据,当我按日期分组时,我得到 too_many_buckets_exception。
所以我目前的查询是
{
"query": {
"bool": {
"must": [],
"filter": []
}
},
"aggs": {
"groupByChannle": {
"terms": {
"field": "channel"
},
"aggs": {
"docs_per_day": {
"date_histogram": {
"field": "message_date",
"fixed_interval": "1d"
}
}
}
}
}
}
如何在不获取此数据的 buckets 数组的情况下获得按 message_date(day) 和频道分组的平均文档计数
"buckets" : [
{
"key_as_string" : "2018-03-17 00:00:00",
"key" : 1521244800000,
"doc_count" : 4027
},
{
"key_as_string" : "2018-03-18 00:00:00",
"key" : 1521331200000,
"doc_count" : 10133
},
...thousands of rows
]
我的索引结构是这样的
"mappings" : {
"properties" : {
"channel" : {
"type" : "keyword"
},
"message" : {
"type" : "text"
},
"message_date" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
}
}
通过这个查询,我只想得到一个 AVERAGE DOC COUNT BY DATE 而没有别的
【问题讨论】:
标签: elasticsearch elastic-stack