Bootstrap

ElasticSearch的java分组聚合操作教程

采用java聚合分组:

需求:计算出每个项目在指定时间内,不同月份在各个区域的销售金额、面积和数量

思路:先按照项目分组,项目里先再按照时间分组再按照区域分组,区域分组里求出面积、金额、数量。最终查询的结果格式大概如下
{
    "key": "dc090583-c910-48e3-bc57-c08e66d88954",
    "projectName": {
        "buckets": [
            {
                "key": "苏州新村"
            }
        ]
    },
    "tradeData": {
        "group_by_time": {
            "buckets": [
                {
                    "key_as_string": "2023年05月",
                    "region": {
                        "buckets": [
                            {
                                "key": "姑苏区",
                                "projectMoney": {
                                    "value": 32000
                                },
                                "projectCount": {
                                    "value": 25
                                },
                                "projectArea": {
                                    "value": 1400
                                }
                            }
                        ]
                    }
                },
                {
                    "key_as_string": "2023年06月",
                    "region": {
                        "buckets": [
                            {
                                "key": "姑苏区",
                                "projectMoney": {
                                    "value": 3200000
                                },
                                "projectCount": {
                                    "value": 35
                                },
                                "projectArea": {
                                    "value": 1700
                                }
                            }
                        ]
                    }
                },
                {
                    "key_as_string": "2023年08月",
                    "region": {
                        "buckets": [
                            {
                                "key": "姑苏区",
                                "projectMoney": {
                                    "value": 2800
                                },
                                "projectCount": {
                                    "value": 18
                                },
                                "projectArea": {
                                    "value": 1000.7
                                }
                            }
                        ]
                    }
                },
                {
                    "key_as_string": "2023年10月",
                    "region": {
                        "buckets": [
                            {
                                "key": "姑苏区",
                                "projectM
;