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

ElasticSearch 聚合查询语句 histogram 时序图例子,第1张

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 那一级仿照着加就行。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5572641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存