gpt4 book ai didi

elasticsearch - elasticsearch每小时直方图计算

转载 作者:行者123 更新时间:2023-12-03 01:02:50 25 4
gpt4 key购买 nike

此dsl返回索引的日期字段中的所有小时。。但是我需要索引中“小时值”的总值。因此,我只希望结果是24个存储桶中的每个存储桶都包含一个小时,并且该存储桶中的值必须是该小时中所有文档的字段总和

{
"size":0,
"query":{
"filtered":{
"filter":{
}
}
},
"aggs":{
"aggs1":{
"date_histogram":{
"field":"loggingdate",
"interval":"hour",
"format":"k",
"order":{
"aggs2":"desc"
}
},
"aggs":{
"aggs2":{
"sum":{
"field":"respsize"
}
}
}
}
}
}

例子:这返回
"aggs1": {
"buckets": [
{
"key_as_string": "5",
"key": 1452852000000,
"doc_count": 29500,
"aggs2": {
"value": 1
}
},
{
"key_as_string": "6",
"key": 1452866400000,
"doc_count": 15941,
"aggs2": {
"value": 2
}
},
{
"key_as_string": "5",
"key": 1452870000000,
"doc_count": 6121,
"aggs2": {
"value": 3
}
},

但我想要这个:
"aggs1": {
"buckets": [
{
"key_as_string": "5",
"key": 1452852000000,
"doc_count": 29500,
"aggs2": {
"value": 4
}
},
{
"key_as_string": "6",
"key": 1452866400000,
"doc_count": 15941,
"aggs2": {
"value": 2
}
}
},

最佳答案

然后,您可以使用terms aggregation。使用以下查询:

{
"size":0,
"query":{
"filtered":{
"filter":{
}
}
},
"aggs":{
"aggs1":{
"terms":{
"script": "new
DateTime(doc['loggingdate'].value).getHourOfDay()",

"order":{
"aggs2":"desc"
}
},
"aggs":{
"aggs2":{
"sum":{
"field":"respsize"
}
}
}
}
}
}

我想它将为您带来理想的结果。

关于elasticsearch - elasticsearch每小时直方图计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com