ElasticSearch 聚合查询语句 histogram 时序图例子

在es中按照时间字段,以2分钟为时间粒度,也就是把2分钟数据统计一下交易量,然后统计一整天的数据量,最后用这数据做个时序图。

ES的查询语句:

{
    "size":0,
    "query":{
        "bool":{
            "must":[
                {
                    "bool":{
                        "must":[
                            {
                                "term":{
                                    "tag.keyword":{
                                        "value":"DB",
                                        "boost":1
                                    }
                                }
                            },
                            {
                                "term":{
                                    "dataID.keyword":{
                                        "value":"b5bb9e39-59c7-46fb-b380-e621a21fd7d5",
                                        "boost":1
                                    }
                                }
                            },
                            {
                                "range":{
                                    "time":{
                                        "from":1636473600000,
                                        "to":1636646400000,
                                        "include_lower":true,
                                        "include_upper":false,
                                        "boost":1
                                    }
                                }
                            }
                        ],
                        "disable_coord":false,
                        "adjust_pure_negative":true,
                        "boost":1
                    }
                }
            ],
            "disable_coord":false,
            "adjust_pure_negative":true,
            "boost":1
        }
    },
    "aggregations":{
        "time_xxx":{
            "histogram":{
                "field":"time",
                "interval":120000,
                "offset":0,
                "order":{
                    "_key":"asc"
                },
                "keyed":false,
                "min_doc_count":0
            }
        }
    }
}

实际查询结果截图:

简要说明:

这个数据里面的时间字段是time,是毫秒级别的,时间粒度是2分钟,间隔就是120000,还有就是在加过滤条件的时候,数据的key,可能需要加上keyword,即xxx.keyword,才管用,这个估计和es的mapping模版有关系。 查询语句的限制条件就在term term  range 那一级仿照着加就行。

我这留个备忘录,以备不时之需。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值