ES:聚合查询语法

news2025/2/22 3:17:19

基础查询结构:

GET http://ip:prot/textbook/_search      

{          "query" : { ...query子句... },

           "aggs" : {

                "agg_name":{

                        "agg_type": {

                                "agg_arg": agg_arg_value

                            }

                     }

                },

           "sort" : { ..sort子句.. }

           "from" : 0, // 返回搜索结果的开始位置

           "size" : 10, // 分页大小,一次返回多少数据

           "_source" :[ ...需要返回的字段数组... ],

   }

这个聚合查询就是写aggs里面的语句。其中,agg_name是聚合操作的名称,agg_type是聚合操作的类型,agg_arg是聚合操作的参数,agg_arg_value是参数值。

  1. Metric(指标)
    Metric聚合用于对数值字段进行统计计算,例如求平均值、最大值、最小值、求和、统计样本方差等。它能够提供各种度量指标,以便对数据进行汇总和分析。在聚合查询中,可以通过指定一个或多个Metric聚合来对数值字段进行计算,并将结果返回给用户。
  2. Bucketing(桶)
    Bucket聚合用于将文档分配到不同的桶中,基于指定的条件。桶聚合能够将数据划分为不同的分组,以便进行进一步的分析和可视化。常见的桶聚合包括terms、histogram、date_histogram等。通过Bucket聚合,可以对数据进行分组、过滤和排序,以便更好地了解数据的分布和模式。类似于mysql中的grouo by语法。
  3. Matrix(矩阵)
    Matrix聚合提供了一种在给定文档集合上执行复杂分析的方法。它可以用于计算字段之间的统计量,例如两个字段之间的相关性或协方差。Matrix聚合返回一个矩阵,其中包含了指定字段之间的各种统计信息。通过Matrix聚合,可以对数据进行更深入的分析和探索。
  4. Pipeline(管道)
    Pipeline聚合能够对其他聚合的结果进行二次聚合。它们可以用于对已经计算出的聚合结果进行进一步的处理和计算。例如,可以将Bucket聚合的结果传递给Metric聚合,以便对桶中的数据进行度量计算。Pipeline聚合提供了更高级的聚合操作,以便更好地处理和分析数据。类似于mysql中的having语法。

1、Metric(指标)

这个查询将返回"amount"字段的平均值。在聚合查询中,"size"参数设置为0,表示不需要返回文档本身,只需要聚合结果。下面的这个只是一个简单的查询,是单值分析。

Get /my_index/_search
{
  "size": 0,
  "aggs": {
//求amount字段的平均值
    "amount_avg": {
      "avg": {
        "field": "amount"
      },
//求amount字段的最小值
    "min_sales": {
      "min": {
        "field": "amount"
      }
    },
//求amount字段的最大值
    "my_max":{
       "max": {
         "field":"amount"        
        }
    }
  }
}
1.1  stats(会返回多个聚合结果)
  • 使用_stats查询来获取有关字段的统计信息,例如平均值、最小值、最大值等。
Get /my_index/_search
{
  "size": 0,
  "aggs": {
//求amount字段的各个指标
    "my_stats": {
      "stats": {
        "field": "amount"
      }
  }
}

1.2 Extended_stats(扩展统计信息)
  • 使用_extended_stats查询来获取有关字段的扩展统计信息,例如方差、偏度和峰度。
    GET /your_index/_search
    {
      "size": 0,
      "aggs": {
        "my_extended_stats": {
          "extended_stats": {
            "field": "amount"
          }
        }
      }
    }

1.3 唯一值(Cardinality) 
  • 查这字段有哪些值,返回这个数量。相当于mysql中的distinct
GET /your_index/_search
{
  "size": 0,
  "aggs": {
    "my_cardinality": {
      "cardinality": {
        "field": "amount"
      }
    }
  }
}

1.4 Percentile_rank(百分位数排名)
  • Percentiles聚合可以了解数据的分布情况,从小到大排序,可以显示自己想知道的第百分之几的值。可以更好的了解数据的离散程度和异常值。
GET /your_index/_search
{
  "size": 0,
  "aggs": {
    "my_percentiles": {
      "percentiles": {
        "field": "amount",
        "percents": [
         20,
         50,
         75,
         99
       ]
      }
    }
  }
}

1.5 top_hits(top匹配值)
  • 用于获取匹配度最高的几个文档。此时主要看的是score字段的值
GET /your_index/_search
{
  "size": 0,
  "aggs": {
     "My_top": {
      "top_hits": {
          "_source": ["aaaa"],
          "size": 2
      }
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cesium--加载天地图

背景:vue-admin-temlate cesium 天地图 天地图地址:国家地理信息公共服务平台 天地图 步骤一:申请成为天地图开发者,创建应用 1,天地图使用方法(点击开发资源即可看到此页面) 2,点击控制台-登录账号 …

13:HAL---SPI

目录 一:SPL通信 1:简历 2:硬件电路 3:移动数据图 4:SPI时序基本单元 A : 开/ 终条件 B:SPI时序基本单元 A:模式0 B:模式1 C:模式2 D:模式3 C:SPl时序 A:发送指令 B: 指定地址写 C:指定地址读 5:NSS(CS) 6:时钟 二: W25Q64 1:简历 2…

Star-CCM+通过将所有部件创建一个区域的方式分配至区域后子区域的分离,子区域材料属性的赋值,以及物理连续体的创建方法介绍

前言 上次介绍了将零部件分配至区域的方法与各个方法之间的区别,本文将继续上次的讲解,将其中的“将所有部件分配至一个区域”的应用进行补充。 如下图所示,按照将所有部件创建一个区域的方式分配至区域后,在区域下就会有一个区域…

springboot+vue实现登录注册,短信注册以及微信扫描登录

说明:微信扫描登录需要微信注册--要钱,感谢尚硅谷提供的免费接口;短信注册需要阿里云的注册很麻烦并且短信费,没有接口,所以不打算实现,不过能做出效果。 目录 一、建立数据库 二、后端idea实现接口 1.…

全球首发:抗量子、以太坊兼容测试网正式上线

量子计算机将有能力破解目前互联网上使用的主要加密算法,影响的领域包括银行应用程序、电子邮件服务和社交媒体平台。 2023年5月7日,QANplatform推出了全球首个兼容以太坊的抗量子区块链测试网,此举将使开发者能够使用任何编程语言来编写智能…

thinkphp6使用layui分页组件做分页效果

博主用的是layui2.9.8的版本,但这个版本的分页组件是动态效果的,但我需要的是静态分页,所以我自己封装了一个生成layui的分页代码生成代码。代码如下: 1、先创建文件,路径是extent/layui/LayuiPage.php,加…

Java实战:验证改进的哥德巴赫猜想

改进的哥德巴赫猜想(Improved Goldbach’s Conjecture)声称每个大于5的奇数都可以表示为三个素数之和。这个猜想是对原始哥德巴赫猜想的扩展,针对奇数的情况。原始哥德巴赫猜想是指每个大于2的偶数都可以表示为两个素数之和。尽管改进的哥德巴…

ROS 2边学边练(45)-- 构建一个能动的机器人模型

前言 在上篇中我们搭建了一个机器人模型(其由各个关节(joint)和连杆(link)组成),此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中,关节一般有无限旋转(continuous),有限旋转…

el-dialog设置el-head固定

0 效果 1 代码 ::v-deep .adTextDetailDialogClass .el-dialog__body{max-height: calc(100vh - 150px);overflow: auto;border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf; } ::v-deep .adTextDetailDialogClass .el-dialog{position: fixed;height:fit-content;…

15-LINUX--线程的创建与同步

一.线程 1.线程的概念 线程是进程内部的一条执行序列或执行路径,一个进程可以包含多条线程。 2.线程的三种实现方式 ◼ 内核级线程:由内核创建,创建开销大,内核能感知到线程的存在 ◼ 用户级线程:线程的创建有用户空…

springboot 引入第三方bean

如何进行第三方bean的定义 参数进行自动装配

数据库中索引的底层原理和SQL优化

文章目录 关于索引B 树的特点MySQL 为什么使用 B 树? 索引分类聚簇索引 和 非聚簇索引覆盖索引索引的最左匹配原则索引与NULL索引的代价大表结构修改 SQL优化EXPLAIN命令选择索引列其它细节 关于索引 索引是一种用来加快查找效率的数据结构,可以简单粗暴…

探索黏土特效?推荐这三款软件!

在数字化时代,我们拥有无数的工具来释放我们的创造力和想象力。其中,黏土特效软件就是一种能够将你的照片或图像转化为可爱、生动的黏土动画的工具。这些软件以其独特的视觉效果和易于使用的特性,吸引了大量的用户。下面,我们将为…

gorm-sharding分表插件升级版

代码地址: GitHub - 137/gorm-sharding: Sharding 是一个高性能的 Gorm 分表中间件。它基于 Conn 层做 SQL 拦截、AST 解析、分表路由、自增主键填充,带来的额外开销极小。对开发者友好、透明,使用上与普通 SQL、Gorm 查询无差别.解决了原生s…

FreeRTOS学习 -- 任务相关API函数

一、任务创建和删除API函数 FreeRTOS 最基本的功能就是任务管理,而任务管理最基本的操作就是创建和删除任务。 FreeRTOS的任务创建和删除API函数如下: 1、函数 xTaskCreate() 此函数用来创建一个任务,任务需要 RAM 来保存于任务有关的状…

nginx的应用部署nginx

这里写目录标题 nginxnginx的优点什么是集群常见的集群什么是正向代理、反向代理、透明代理常见的代理技术正向代理反向代理透明代理 nginx部署 nginx nginx(发音同enginex)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3&…

每日一题 第九十七期 洛谷 [NOIP2000 提高组] 方格取数

[NOIP2000 提高组] 方格取数 题目背景 NOIP 2000 提高组 T4 题目描述 设有 N N N \times N NN 的方格图 ( N ≤ 9 ) (N \le 9) (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0 0 0。如下图所示(见样例&#xf…

同步电机原理解析

同步电机 同步带年纪,顾名思义无论负载如何,都能以恒定的速度运转,它以高效率著称 这种恒速特性是通过恒定磁场和旋转磁场的相互作用实现的,与其他电机一样,同步电机由定子和转子组成,定子铁芯由硅片层叠而…

STC8增强型单片机开发 【GPIO的理解⭐⭐】

目录 一、引言 二、GPIO概述 三、GPIO的功能 1. 输入功能: 2. 输出功能 四、GPIO的配置方法 1. 选择GPIO端口和引脚: 2. 设置GPIO模式: 3. 配置GPIO参数: 五、GPIO应用实例 1. 硬件连接: 2. 编程实现&…

2.1初识Spark

Spark于2009年诞生,最初是加州大学伯克利分校的研究项目。2013年加入Apache孵化器项目,2014年成为Apache顶级项目。Spark以内存内运算技术为核心,包含多个计算框架,成为大数据计算领域的后起之秀,打破了Hadoop的基准排…