我想得到date_histogram在特定的时期,如何限制日期的期限?我应该使用extended_bounds参数吗?例如:我想在“2016-08-01”和“2016-08-31”之间查询date_histogram,间隔是天。我对这个表达式提出疑问:
{
"aggs": {
"cf_loan": {
"date_histogram": {
"field": "createDate",
"interval": "day",
"format": "yyyy-MM-dd",
"min_doc_count": 0,
"extended_bounds": {
"min": "2016-08-01",
"max": "2016-08-31"
}
}
}
}
}但我得到的date_histogram不在范围内。
发布于 2016-09-05 03:54:55
快到了,您需要添加一个range查询,以便只选择其createDate字段在所需范围内的文档。
{
"query": {
"range": { <---- add this range query
"createDate": {
"gte": "2016-08-01T00:00:00.000Z",
"lt": "2016-09-01T00:00:00.000Z"
}
}
},
"aggs": {
"cf_loan": {
"date_histogram": {
"field": "createDate",
"interval": "day",
"format": "yyyy-MM-dd",
"min_doc_count": 0,
"extended_bounds": {
"min": "2016-08-01",
"max": "2016-08-31"
}
}
}
}
}extended_bounds参数的作用是确保从min到max每天都能得到桶,即使其中没有文档。例如,假设你在2016-08-04和2016-08-28之间每天有一份文件,那么如果没有extended_bounds参数,你就会得到25个桶(2016-08-04,2016-08-05,2016-08-06,.,2016-08-28)。
使用extended_bounds参数,您还可以获得以下存储桶,但使用的是0文档:
https://stackoverflow.com/questions/39322942
复制相似问题