MST
星途 面试题库

面试题:ElasticSearch均值聚合与其他聚合的结合应用

假设你有一个包含商品销售数据的ElasticSearch索引,其中包含价格、销量等字段。现在要求计算不同类别商品的平均价格,并且要同时获取每个类别商品的销售总量。请阐述实现思路,并给出相应的ElasticSearch DSL代码。
22.0万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 使用Elasticsearch的聚合(Aggregation)功能,按照商品类别进行分组。
  2. 在分组后,通过avg聚合计算每个类别商品的平均价格。
  3. 同时,通过sum聚合计算每个类别商品的销售总量。

ElasticSearch DSL代码

{
    "size": 0,
    "aggs": {
        "group_by_category": {
            "terms": {
                "field": "category_field"
            },
            "aggs": {
                "average_price": {
                    "avg": {
                        "field": "price_field"
                    }
                },
                "total_sales": {
                    "sum": {
                        "field": "sales_volume_field"
                    }
                }
            }
        }
    }
}

请将上述代码中的category_field替换为实际存储商品类别的字段名,price_field替换为实际存储价格的字段名,sales_volume_field替换为实际存储销量的字段名。