Elasticsearch Date_Histogram 没有覆盖整个过滤器
Elasticsearch Date_Histogram does not cover entire filter
我正在使用 ES Date Histogram 并且开始出现奇怪的行为,我想知道为什么。
这是我发送给 elasticsearch 的请求:
{
"from": 0,
"size": 0,
"query": {
"filtered": {
"filter": {
"and": [
{
"bool": {
"must": [
{
"range": {
"publishTime": {
"from": "2010-07-02T12:15:20.000Z",
"to": "2015-07-08T12:43:59.000Z"
}
}
}
]
}
}
]
}
}
},
"aggs": {
"agg|date_histogram|publishTime": {
"date_histogram": {
"field": "publishTime",
"interval": "1d",
"min_doc_count": 0
}
}
}
}
我得到的结果是桶,第一个桶是:
{
"key_as_string": "2010-08-24T00:00:00.000Z",
"key": 1282608000000,
"doc_count": 1
}
所以我从 2010-07-02 开始过滤,只从 2010-08-24 获得结果
这只是一个例子,我还看到这种行为有更多的桶丢失(几个月)。
[编辑]
这似乎与第一个结果的日期相关,这意味着该时间范围内的第一个结果是从 2010 年 8 月 24 日开始的,但是正如我所包括的 "min_doc_count": 0
我希望从整个范围内获得结果
min_doc_count
仅足以返回过滤器匹配的第一个和最后一个文档之间的空桶。如果您想获得整个范围的结果,您还需要使用 extended_bounds
:
"aggs": {
"agg|date_histogram|publishTime": {
"date_histogram": {
"field": "publishTime",
"interval": "1d",
"min_doc_count": 0
"extended_bounds": {
"min": 1278072920000,
"max": 1436359439000
}
}
}
}
我正在使用 ES Date Histogram 并且开始出现奇怪的行为,我想知道为什么。
这是我发送给 elasticsearch 的请求:
{
"from": 0,
"size": 0,
"query": {
"filtered": {
"filter": {
"and": [
{
"bool": {
"must": [
{
"range": {
"publishTime": {
"from": "2010-07-02T12:15:20.000Z",
"to": "2015-07-08T12:43:59.000Z"
}
}
}
]
}
}
]
}
}
},
"aggs": {
"agg|date_histogram|publishTime": {
"date_histogram": {
"field": "publishTime",
"interval": "1d",
"min_doc_count": 0
}
}
}
}
我得到的结果是桶,第一个桶是:
{
"key_as_string": "2010-08-24T00:00:00.000Z",
"key": 1282608000000,
"doc_count": 1
}
所以我从 2010-07-02 开始过滤,只从 2010-08-24 获得结果
这只是一个例子,我还看到这种行为有更多的桶丢失(几个月)。
[编辑]
这似乎与第一个结果的日期相关,这意味着该时间范围内的第一个结果是从 2010 年 8 月 24 日开始的,但是正如我所包括的 "min_doc_count": 0
我希望从整个范围内获得结果
min_doc_count
仅足以返回过滤器匹配的第一个和最后一个文档之间的空桶。如果您想获得整个范围的结果,您还需要使用 extended_bounds
:
"aggs": {
"agg|date_histogram|publishTime": {
"date_histogram": {
"field": "publishTime",
"interval": "1d",
"min_doc_count": 0
"extended_bounds": {
"min": 1278072920000,
"max": 1436359439000
}
}
}
}