Elasticsearch系列---聚合查询(一)

本文介绍了Elasticsearch的聚合查询,包括bucket和metric的概念,通过案例展示了如何统计歌曲语言分布、平均时长、按时间分段统计以及带过滤条件的查询。还涉及到了global bucket查询和排序规则,是学习Elasticsearch聚合查询的实用教程。
摘要由CSDN通过智能技术生成

概要

Elasticsearch的聚合查询,跟数据库的聚合查询效果是一样的,我们可以将二者拿来对比学习,如求和、求平均值、求最大最小等等。

基础概念

bucket

数据分组,一些数据按照某个字段进行bucket划分,这个字段值相同的数据放到一个bucket中。可以理解成Java中的Map<String, List>结构,类似于Mysql中的group by后的查询结果。

metric:

对一个数据分组执行的统计,比如计算最大值,最小值,平均值等
类似于Mysql中的max(),min(),avg()函数的值,都是在group by后使用的。

案例

我们还是以英文儿歌为案例背景,回顾一下索引结构:

PUT /music
{
   
  "mappings": {
   
      "children": {
   
        "properties": {
   
          "id": {
   
            "type": "keyword"
          },
          "author_first_name": {
   
            "type": "text",
            "analyzer": "english"
          },
          "author_last_name": {
   
            "type": "text",
            "analyzer": "english"
          },
          "author": {
   
            "type": "text",
            "analyzer": "english",
            "fields": {
   
              "keyword": {
   
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "name": {
   
            "type": "text",
            "fields": {
   
              "keyword": {
   
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "content": {
   
            "type": "text",
            "fields": {
   
              "keyword": {
   
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "language": {
   
            "type": "text",
            "analyzer": "english",
            "fielddata": true
          },
          "tags": {
   
            "type": "text",
            "analyzer": "english"
          },
          "length": {
   
            "type": "long"
          },
          "likes": {
   
            "type": "long"
          },
          "isRelease": {
   
            "type": 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值