ES:聚合查询语法

基础查询结构:

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.hqwc.cn/news/681862.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8+PyQt5蔬菜识别检测(26种不同蔬菜类型,yolov8模型,从图像、视频和摄像头三种路径识别检测)

1.基于最新的YOLOv8训练的蔬菜检测模型,和基于PyQt5制作的可视蔬菜检测系统,该系统可自动检测和识别图片或视频当中出现的26种蔬菜:鸡蛋, 姜, 菜椒, 南瓜, 山药, 辣椒, 霉豆, 蘑菇, 香菜, 茼蒿, 油菜, 黄瓜, 角瓜, 莲藕, 西兰花, 菜花, 土豆,…

SpringBoot结合Canal 实现数据同步

1、Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

揿针贴一般贴多长时间?

点击文末领取揿针的视频教程跟直播讲解 揿针作为一种侵入性疗法,一般贴48-72小时,相对来说比较安全,取针后24小时内都不建议碰水,以免局部发炎。 一般揿针都贴到背部以及需要治疗的区域,揿针进针的深度非常浅&#x…

每日Attention学习5——Multi-Scale Channel Attention Module

模块出处 [link] [code] [WACV 21] Attentional Feature Fusion 模块名称 Multi-Scale Channel Attention Module (MS-CAM) 模块作用 通道注意力 模块结构 模块代码 import torch import torch.nn as nnclass MS_CAM(nn.Module):def __init__(self, channels64, r4):super(…

物联网网关制造生产全流程揭秘!

如果您正有开发和定制物联网网关的计划,找一个专业的物联网设备厂商协助您制造生产物联网网关可以节省大量时间和成本,可以让您能专注于当前核心业务,而无需将精力过多地投入到自己不擅长的领域。 当然,了解物联网网关的测试和制…

Android 高版本实现沉浸式状态栏

目前实现的android高版本沉浸式状态栏分为两类: 1、是纯透明状态栏; 2、是纯透明状态栏,但是状态栏字体是黑色; 将状态栏的代码封装到BaseActivity中更方便使用: BaseActivity: public abstract class BaseActivit…

重学java 33.API 4.日期相关类

任何事,必作于细,也必成于实 —— 24.5.9 一、Date日期类 1.Date类的介绍 1.概述: 表示特定的瞬间,精确到亳秒 2.常识: a.1000毫秒 1秒 b.时间原点:1970年1月1日 0时0分0秒(UNIX系统起始时间),叫做格林威治时间,在0时区上 c.时区:北京位于东八区,一个时区…

一个递推通项公式研究

递推关系为a(n) ​pa(n−1) ​ qa(n−2) ​,本项前一项*2前前项,具体如 1,1,3,7,17,41,99,239,…… 一般的递推关系可以用以下方法 得两个解: …

WPF控件之StackPanel布局控件

StackPanel别名堆栈panel 使其子元素按照一定方式进行布局&#xff0c;子元素排布方式要么设置为水平排布&#xff0c;要么垂直排布。 属性 Orientation设置排列方式(默认的是垂直排布) : Horizontal水平排布 Vertical 垂直排布 实例 <StackPanel Orientation"Vert…

【Python】什么是皮尔森系数

我不完美的梦 你陪着我想 不完美的勇气 你说更勇敢 不完美的泪 你笑着擦干 不完美的歌 你都会唱 我不完美心事 你全放在心上 这不完美的我 你总当做宝贝 你给我的爱也许不完美 但却最美 &#x1f3b5; 周冬雨《不完美女孩》 皮尔森相关系数&#xff08;Pe…

力扣HOT100 - 4. 寻找两个正序数组的中位数

解题思路&#xff1a; 两个数组合并&#xff0c;然后根据奇偶返回中位数。 class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int m nums1.length;int n nums2.length;int[] nums new int[m n];if (m 0) {if (n % 2 0) return (nums2…

自动控制原理学习--平衡小车的控制算法(三)

上一节PID的simulin仿真&#xff0c;这一节用LQR 一、模型 二、LQR LQR属于现代控制理论的一个很重要的点&#xff0c;这里推荐B站的【Advanced控制理论】课程&#xff08;up主DR_CAN&#xff09;&#xff0c;讲得很好&#xff0c;这里引用了他视频里讲LQR的ppt。 LQR属于lo…