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

Posted 请叫我大师兄_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 那一级仿照着加就行。

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

以上是关于ElasticSearch 聚合查询语句 histogram 时序图例子的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch的高级复杂查询:非聚合查询和聚合查询

关于在elasticSearch中使用聚合查询后只显示10个bucket的问题

Elasticsearch聚合查询

Elasticsearch多字段聚合查询

Elasticsearch聚合查询

elasticsearch 进行聚合+去重查询