我正在使用rest API查询ElasticSearch
的结果。
下面是API查询字符串。
GET /..../_search
{
"size":0,
"query": {
"bool": {
"must": [
{ "range": {
"@timestamp": {
"time_zone": "+09:00",
"gte": "2023-01-24T00:00:00.000Z",
"lt": "2023-01-24T03:03:00.000Z" } } },
{
"term" : {
"serviceid.keyword" : {
"value" : "430011397"
}
}
}
]
}
},
"aggs": {
"by_day": {
"auto_date_histogram": {
"field": "@timestamp",
"minimum_interval":"minute"
},
"aggs": {
"agg-type": {
"terms": {
"field": "nxlogtype.keyword",
"size": 100000
},
"aggs": {
"my-sub-agg-name": {
"avg": {
"field": "size"
}
}
}
}
}
}
}
}
如您所见,我在gte
和lt
字段中指定了大约三个小时的时间范围。但是,结果只返回了6个间隔为30分钟的桶。我希望在我指定的时间戳内返回许多间隔为一分钟的桶,但是结果总是相同的,即使我将时间范围更改为更长的时间范围。
由于我是ElasticSearch的新手,我不熟悉查询的用法。如何解决我的问题?
1条答案
按热度按时间jum4pzuy1#
您可以使用date histogram聚合而不是
auto_date_histogram
来指定严格范围。下面是一个例子: