MST

星途 面试题库

面试题:ElasticSearch中如何实现最大值、最小值与和值聚合

在ElasticSearch中,假设有一个包含商品价格的索引,你需要通过聚合操作获取商品价格的最大值、最小值以及所有商品价格的总和,请描述具体的聚合查询语句结构以及关键参数的作用。
21.6万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

以下是在Elasticsearch中获取商品价格最大值、最小值以及总和的聚合查询语句示例(假设索引名为products,商品价格字段名为price):

{
    "size": 0, 
    "aggs": {
        "max_price": {
            "max": {
                "field": "price"
            }
        },
        "min_price": {
            "min": {
                "field": "price"
            }
        },
        "sum_price": {
            "sum": {
                "field": "price"
            }
        }
    }
}

关键参数作用:

  • size: 0:设置返回的搜索结果文档数量为0,因为我们只关心聚合结果,不关心具体的商品文档。
  • aggs:聚合操作的根节点,用于定义各种聚合。
    • max_price:自定义的聚合名称,用于标识获取最大价格的聚合操作,可以自定义为任何你想要的名称。
      • max:聚合类型,这里使用max类型来获取指定字段的最大值。
      • field: "price":指定要进行聚合操作的字段,这里是商品价格字段price
    • min_price:自定义的聚合名称,用于标识获取最小价格的聚合操作。
      • min:聚合类型,用于获取指定字段的最小值。
      • field: "price":指定要进行聚合操作的字段。
    • sum_price:自定义的聚合名称,用于标识获取价格总和的聚合操作。
      • sum:聚合类型,用于计算指定字段的总和。
      • field: "price":指定要进行聚合操作的字段。