MST

星途 面试题库

面试题:ElasticSearch复杂聚合场景下缺失值处理

假设你在一个电商数据的ElasticSearch索引中,要对商品的价格进行聚合分析,同时有些商品缺失价格字段。现在需要按照商品类别聚合,并计算每个类别下商品价格的平均值,在考虑缺失值的情况下,如何编写相应的聚合查询DSL语句来实现准确的分析?
44.9万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
{
    "aggs": {
        "group_by_category": {
            "terms": {
                "field": "category_field"
            },
            "aggs": {
                "avg_price": {
                    "avg": {
                        "field": "price_field",
                        "missing": 0
                    }
                }
            }
        }
    }
}

解释:

  1. terms 聚合用于按商品类别(假设类别字段为 category_field)进行分组。
  2. 在每个类别分组下,使用 avg 聚合计算价格平均值,field 指定为价格字段(假设为 price_field),missing 设置为 0,表示将缺失价格值视为0来参与平均值计算。