ElasticSearch聚合aggs入门

Elasticsearch是一款功能强大的开源软件,不仅可以检索排序,还可以对文档进行更复杂的操作--聚合。

1、单值聚合

  Sum求和,dsl参考如下:

{
  "size": 0,
  "aggs": {
    "return_balance": {
      "sum": {
        "field": "balance"
      }
    }
  }
}

返回balance之和,其中size=0 表示不需要返回参与查询的文档。

Min求最小值

{
  "size": 0,
  "aggs": {
    "return_min_balance": {
      "min": {
        "field": "balance"
      }
    }
  }
}

返回结果

Max求最大值

{
  "size": 0,
  "aggs": {
    "return_max_balance": {
      "max": {
        "field": "balance"
      }
    }
  }
}

返回结果:

AVG求平均值

{
  "size": 0,
  "aggs": {
    "return_avg_balance": {
      "avg": {
        "field": "balance"
      }
    }
  }
}

返回结果:

Cardinality 求基数(如下示例,查找性别的基数 M、F,共两个)

{
  "size": 0,
  "aggs": {
    "return_cardinality": {
      "cardinality": {
        "field": "gender"
      }
    }
  }
}

结果为:

2、多值聚合

percentiles 求百分比

查看官方文档时候,没看懂,下面是自己测试时的例子,按照性别(F,M)查看工资范围的百分比

{
  "size": 0,
  "aggs": {
    "states": {
      "terms": {
        "field": "gender"
      },
      "aggs": {
        "banlances": {
          "percentile_ranks": {
            "field": "balance",
            "values": [
              20000,
              40000
            ]
          }
        }
      }
    }
  }

结果:

stats 统计

查看balance的统计情况:

{
  "size": 0,
  "aggs": {
    "balance_stats": {
      "stats": {
        "field": "balance"
      }
    }
  }
}

返回结果:

extended_stats 扩展统计

{
  "size": 0,
  "aggs": {
    "balance_stats": {
      "extended_stats": {
        "field": "balance"
      }
    }
  }
}

结果:

更加复杂的查询,后续慢慢在实践中道来。

时间: 2024-11-08 21:32:28

ElasticSearch聚合aggs入门的相关文章

ElasticSearch - 聚合 aggs

聚合概念ElasticSearch除了致力于搜索之外,也提供了聚合实时分析数据的功能 如果把搜索比喻为大海捞针(从海量的文档中找出符合条件的那一个),那麽聚合就是去分析大海中的针们的特性,像是 在大海里有多少针? 针的平均长度是多少? 按照针的製造商来划分,针的长度中位值是多少? 每月加入到海中的针有多少? 这里面有异常的针麽? 因此透过聚合,我们可以得到一个数据的概览,聚合能做的是分析和总结全套的数据,而不是查找单个文档(这是搜索做的事) 聚合允许我们向数据提出一些複杂的问题,虽然他的功能完全

Elasticsearch 之聚合分析入门

本文主要介绍 Elasticsearch 的聚合功能,介绍什么是 Bucket 和 Metric 聚合,以及如何实现嵌套的聚合. 首先来看下聚合(Aggregation): 什么是 Aggregation? 首先举一个生活中的例子,这个是京东的搜索界面,在搜索框中输入"华为"进行搜索,就会得到如上界面,搜索框就是我们常用的搜索功能,而下面这些,比如分类.热点.操作系统.CPU 类型等是根据 ES 的聚合分析获得的相关结果. 看完上面这个例子,下面来看下聚合的定义: ES 除了搜索以外,

ElasticSearch聚合分析

聚合用于分析查询结果集的统计指标,我们以观看日志分析为例,介绍各种常用的ElasticSearch聚合操作. 目录: 查询用户观看视频数和观看时长 聚合分页器 查询视频uv 单个视频uv 批量查询视频uv Having查询 根据 count 进行过滤 根据其它指标进行过滤 首先展示一下我们要分析的文档结构: { "video_id": 1289643545120062253, // 视频id "video_uid": 3931482202390368051, //

elasticsearch聚合操作——本质就是针对搜索后的结果使用桶bucket(允许嵌套)进行group by,统计下分组结果,包括min/max/avg

分析 Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计.它很像SQL中的GROUP BY但是功能更强大. 举个例子,让我们找到所有职员中最大的共同点(兴趣爱好)是什么: GET .monitoring-es-6-2018.08.16/_search{ "aggs": { "all_interests": { "terms": { "field": "sour

Elasticsearch聚合问题

在测试Elasticsearch聚合的时候报了一个错误.具体如下: GET /megacorp/employee/_search { "aggs": { "all_interests": { "terms": { "field": "interests" } } } } 报错信息 { "error": { "root_cause": [ { "type&qu

Elasticsearch聚合 之 Terms

本篇着重讲解的terms聚合,它是按照某个字段中的值来分类: 比如性别有男.女,就会创建两个桶,分别存放男女的信息.默认会搜集doc_count的信息,即记录有多少男生,有多少女生,然后返回给客户端,这样就完成了一个terms得统计. Terms聚合 { "aggs" : { "genders" : { "terms" : { "field" : "gender" } } } } 得到的结果如下: { ..

[Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(指标)

[Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(指标) 2015-01-04 来源: http://blog.csdn.net/dm_vincent/article/details/42387161 本章翻译自Elasticsearch官方指南的Aggregations-High-level Concepts一章. 高层概念(High-Level Concepts) 和查询DSL一样,聚合(Aggregations)也拥有一种可组合(Composabl

elasticsearch.net search入门使用指南中文版(翻译)

elasticsearch.net search入门使用指南中文版,elasticsearch.Net是一个非常底层且灵活的客户端,它不在意你如何的构建自己的请求和响应.它非常抽象,因此所有的elasticsearchAPI被表示为方法,没 elasticsearch.net search入门使用指南中文版 elasticsearch.net为什么会有两个客户端? Elasticsearch.Net是一个非常底层且灵活的客户端,它不在意你如何的构建自己的请求和响应.它非常抽象,因此所有的Elas

最新版本elasticsearch本地搭建入门篇

最新版本elasticsearch本地搭建入门篇 项目介绍 最近工作用到elasticsearch,主要是用于网站搜索,和应用搜索. 工欲善其事,必先利其器. 自己开始关注elasticsearch,当下最新版本的elastic,安装过程中踩了不少坑(百度出来都是 老版本),于是就整理了一下,以简单的图解方式分享给最近开始学习elastic的,少踩不必要坑,直接开始上手使用REST API,提高学习效率,值为更好的自己. elasticsearch初识-安装篇 elastic Product A