当前位置: 首页 > news >正文

ES from size聚合查询10000聚合查询,是每个分片先聚合,再统计。还是所有节点查询1万条后,再聚合

在 Elasticsearch 中,聚合查询 的执行过程是 分布式 的,Elasticsearch 会先在每个分片(shard)上执行本地聚合,然后再在协调节点(coordinating node)上对所有分片的聚合结果进行 全局汇总。具体过程如下:


1. 聚合查询的执行过程

1.1 分片级别的本地聚合

  • 查询分发:当你在 Elasticsearch 中执行一个聚合查询时,协调节点会将查询分发到索引的每个分片(shard)上。

  • 本地聚合:每个分片会在本地对匹配的文档执行聚合操作(例如求和、平均值、分组等)。每个分片只会处理自己分片内的数据。

  • 返回中间结果:每个分片将本地的聚合结果返回给协调节点。

1.2 协调节点的全局汇总

  • 结果收集:协调节点会从所有分片中收集聚合结果。

  • 全局汇总:协调节点会对所有分片的聚合结果进行全局汇总。例如:

    • 如果是 求和(sum),协调节点会将所有分片的求和结果相加。

    • 如果是 平均值(avg),协调节点会计算所有分片的平均值。

    • 如果是 分组(terms),协调节点会合并所有分片的分组结果,并重新排序。

  • 返回最终结果:协调节点将最终的聚合结果返回给客户端。


2. 具体示例

假设你执行以下聚合查询:

json

复制

POST /your_index/_search
{"size": 0,"aggs": {"total_sales": {"sum": {"field": "sales"}}}
}

执行步骤

  1. 查询分发

    • 假设索引有3个分片(shard1, shard2, shard3)。

    • 协调节点将查询分发到 shard1、shard2 和 shard3。

  2. 本地聚合

    • shard1 计算本地的 sales 字段总和,假设结果为 1000。

    • shard2 计算本地的 sales 字段总和,假设结果为 1500。

    • shard3 计算本地的 sales 字段总和,假设结果为 2000。

  3. 全局汇总

    • 协调节点收集所有分片的聚合结果:1000(shard1) + 1500(shard2) + 2000(shard3)。

    • 协调节点计算全局总和:1000 + 1500 + 2000 = 4500。

  4. 返回结果

    • 协调节点将最终结果 4500 返回给客户端。


3. 关于 from 和 size 的影响

在聚合查询中,from 和 size 参数通常用于控制返回的 文档数量,而不是聚合结果的数量。例如:

json

复制

POST /your_index/_search
{"from": 0,"size": 10000,"aggs": {"total_sales": {"sum": {"field": "sales"}}}
}
  • from 和 size 的作用

    • from=0, size=10000 表示返回前10,000条文档。

    • 聚合操作是基于这10,000条文档进行的。

  • 执行过程

    • 每个分片会先根据 from 和 size 参数返回匹配的文档(最多10,000条)。

    • 然后在这些文档上执行本地聚合。

    • 协调节点会汇总所有分片的聚合结果。


4. 分片聚合 vs 全局聚合

  • 分片聚合:每个分片只处理自己分片内的数据,返回中间结果。

  • 全局聚合:协调节点对所有分片的中间结果进行汇总,返回最终结果。

注意事项

  1. 数据分布:聚合结果的准确性依赖于数据在分片中的分布。如果数据分布不均匀,可能会导致聚合结果不准确。

  2. 性能问题:如果聚合查询涉及大量数据,可能会导致协调节点的内存和 CPU 资源消耗过高。

  3. size 参数:在聚合查询中,size 参数通常用于控制返回的文档数量,而不是聚合结果的数量。如果需要控制聚合结果的数量,可以使用 terms 聚合的 size 参数。


5. 总结

  • 聚合查询的执行过程

    • 每个分片先执行本地聚合。

    • 协调节点对所有分片的聚合结果进行全局汇总。

  • from 和 size 的作用

    • 控制返回的文档数量,而不是聚合结果的数量。

  • 性能优化

    • 避免在聚合查询中使用过大的 from 和 size 参数。

    • 使用 composite 聚合或 bucket_sort 聚合对聚合结果进行分页。

通过理解 Elasticsearch 的分布式聚合机制,可以更好地优化查询性能,避免资源浪费。

相关文章:

ES from size聚合查询10000聚合查询,是每个分片先聚合,再统计。还是所有节点查询1万条后,再聚合

在 Elasticsearch 中,聚合查询 的执行过程是 分布式 的,Elasticsearch 会先在每个分片(shard)上执行本地聚合,然后再在协调节点(coordinating node)上对所有分片的聚合结果进行 全局汇总。具体过…...

JAVA实战开源项目:安康旅游网站(Vue+SpringBoot) 附源码

本文项目编号 T 098 ,文末自助获取源码 \color{red}{T098,文末自助获取源码} T098,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

Redis详解(实战 + 面试)

目录 Redis 是单线程的!为什么 Redis-Key(操作redis的key命令) String 扩展字符串操作命令 数字增长命令 字符串范围range命令 设置过期时间命令 批量设置值 string设置对象,但最好使用hash来存储对象 组合命令getset,先get然后在set Hash hash命令: h…...

宝塔webhooks与码云实现自动部署

1. 宝塔面板配置Webhook 登录宝塔面板,进入「软件商店」→ 搜索「Webhook」并安装。添加Webhook: 名称:自定义(如 Gitee自动部署)脚本:编写部署脚本,示例如下:#!/bin/bash# 项目路径…...

什么是Agentic AI?(Doubao-1.5-pro-32k 大模型开启联网回答)

Agentic AI即代理式人工智能,也称为智能体AI、代理式AI、能动AI或自主AI(Autonomous AI),是人工智能领域的新兴概念。它是指被设计用来通过理解目标、导航复杂环境,并在最少的人工干预下执行任务的系统,能够…...

LSTM预测模型复现笔记和问题记录

LSTM复现笔记和问题记录 1 LSTM复现记录1.1 复现环境配置1.2 LSTM_Fly文件夹1.2.1 LSTM回归网络(1→1).py1.2.1.1 加载数据1.2.1.2 数据处理1.2.1.3 输入模型维度 1.2.2 移动窗口型回归(3→1).py1.2.2.1 数据处理1.2.2.2 输入模型维度 1.2.3 时间步长型回归(3→1).py1.2.3.1 数…...

开篇词 | Go 项目开发极速入门课介绍

欢迎加入我的训练营:云原生 AI 实战营,一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营。实战营中包含大量 Go、云原生、AI Infra 相关的优质实战课程和项目。欢迎关注我的公众号:令飞编程,持续分享 Go、云原生、AI Infra 技…...

《论软件测试中缺陷管理及其应用》审题技巧 - 系统架构设计师

论软件测试中缺陷管理及其应用写作框架 一、考点概述 本论题“论软件测试中缺陷管理及其应用”主要考查的是软件测试领域中的缺陷管理相关知识与实践应用。论题涵盖了以下几个核心内容: 首先,需要理解软件缺陷的基本概念,即软件中存在的破坏正常运行能力的问题、错误或隐…...

虚拟机快照与linux的目录结构

虚拟机快照是对虚拟机某一时刻状态的完整捕获,包括内存、磁盘、配置及虚拟硬件状态等,保存为独立文件。 其作用主要有数据备份恢复、方便系统测试实验、用于灾难恢复以及数据对比分析。具有快速创建和恢复、占用空间小、可多个快照并存的特点。在管理维…...

FPGA时许约束与分析 1

1、时钟的基本概念 1.1 时钟定义: 同步设计:电路的状态变化总是由某个周期信号的变化进行控制的,在这个信号的 posedge 或者是 negedge 都可以作为电路状态的触发条件。 时钟:在同步设计中,这个信号 叫做时钟。 理…...

【STM32F103ZET6——库函数】6.PWM

目录 配置PWM输出引脚 使能引脚时钟 配置PWM 使能PWM 配置定时器 使能定时器时钟 使能定时器 例程 例程说明 main.h main.c PWM.h PWM.c led.h led.c DSQ.h DSQ.c 配置PWM输出引脚 PWM的输出引脚必须配置为复用功能。 注意:需要使用哪个引脚&…...

基于SpringBoot + Vue的商城购物系统实战

一:简介 使用springboot框架编写后端服务,并使用若依框架搭建管理端界面。在原有基础功能基础上有加入了人工客服、收货地址、智能助手(接入通义千问,暂时关闭)、抽奖功能、支付宝沙箱支付、优惠卷等功能。 目前已部…...

Perl 调用 DeepSeek API 脚本

向 chat.deepseek.com 提问:请将这个 python 脚本翻译为 perl 语言脚本 参阅:Python 调用 DeepSeek API 完整指南 将 Python 脚本翻译为 Perl 语言脚本时,需要注意两种语言之间的语法差异。以下是将给定的 Python 脚本翻译为 Perl 的版本&a…...

2025国家护网HVV高频面试题总结来了01(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 0x1 高频面试题第一套 0x2 高频面试题第二套 0x3 高频面试题第三套 0x4 高频面试题第四套 0x5 高频面…...

【前端基础】3、HTML的常用元素(h、p、img、a、iframe、div、span)、不常用元素(strong、i、code、br)

HTML结构 一个HTML包含以下部分&#xff1a; 文档类型声明html元素 head元素body元素 例&#xff08;CSDN&#xff09;&#xff1a; 一、文档类型声明 HTML最一方的文档称为&#xff1a;文档类型声明&#xff0c;用于声明文档类型。即&#xff1a;<!DOCTYPE html>…...

【前端场景题】如何应对页面请求接口的大规模并发问题

如何应对页面请求接口的大规模并发问题&#xff0c;尤其是前端方面的解决方案&#xff0c;并且需要给出详细的代码解释。首先&#xff0c;我需要仔细阅读我搜索到的资料&#xff0c;找出相关的信息&#xff0c;然后综合这些信息来形成答案。 首先看&#xff0c;它提到前端优化策…...

Sublime Text4安装、汉化

-------------2025-02-22可用---------------------- 官方网址下载&#xff1a;https://www.sublimetext.com 打开https://hexed.it 点击打开文件找到软件安装目录下的 ctrlf 查找 8079 0500 0f94 c2右边启用替换替换为:c641 0501 b200 90点击替换按钮 替换完成后 另存为本地…...

Python PDF文件拆分-详解

目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中&#xff0c;我们常常会遇到大型的PDF文件&#xff0c;这些文件可能难以发送、管理和查阅。将PDF拆分成…...

MacDroid for Mac v2.3 安卓手机文件传输助手 支持M、Intel芯片 4.7K

MacDroid 是Mac毒搜集到的一款安卓手机文件传输助手&#xff0c;在Mac和Android设备之间传输文件。您只需要将安卓手机使用 USB 连接到 Mac 电脑上即可将安卓设备挂载为本地磁盘&#xff0c;就像编辑mac磁盘上的文件一样编辑安卓设备上的文件&#xff0c;MacDroid支持所有 Andr…...

人大金仓国产数据库与PostgreSQL

一、简介 在前面项目中&#xff0c;我们使用若依前后端分离整合人大金仓&#xff0c;在后续开发过程中&#xff0c;我们经常因为各种”不适配“问题&#xff0c;但可以感觉得到大部分问题&#xff0c;将人大金仓视为postgreSQL就能去解决大部分问题。据了解&#xff0c;Kingba…...

FreeACS终极指南:开源TR-069自动配置服务器快速上手教程

FreeACS终极指南&#xff1a;开源TR-069自动配置服务器快速上手教程 【免费下载链接】freeacs Free TR-069 ACS that can run (mostly) anywhere. 项目地址: https://gitcode.com/gh_mirrors/fr/freeacs FreeACS是一款功能强大的开源TR-069自动配置服务器&#xff08;AC…...

Office自定义界面编辑器:打造你的专属Office工作台

Office自定义界面编辑器&#xff1a;打造你的专属Office工作台 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor 你是否厌…...

RAG幻觉根治手册:系统化消除检索增强生成中的错误输出

RAG 系统产生幻觉不是偶然&#xff0c;而是有明确的根因。本文从幻觉的成因分类入手&#xff0c;给出每类幻觉的系统性解决方案&#xff0c;帮助你把 RAG 准确率从 70% 提升到 95%。RAG 幻觉的三大根源在实践中&#xff0c;RAG 幻觉来自三个层面&#xff1a;检索层幻觉&#xf…...

【Lovable CRM系统搭建终极指南】:20年实战沉淀的7大避坑法则与即插即用架构模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lovable CRM系统搭建的底层逻辑与价值定位 Lovable CRM并非传统CRM的功能叠加&#xff0c;而是以“人本交互”为原点重构客户关系管理范式——其底层逻辑根植于可扩展的微服务架构、领域驱动设计&#…...

Wren AI:数据民主化的技术赋能者

Wren AI&#xff1a;数据民主化的技术赋能者 【免费下载链接】WrenAI Turn any AI Agents into world-class data analysts through the open context layer that gives AI agents grounded, governed memory, context, SQL across 20 data sources, that helps you build GenB…...

终极指南:如何在macOS上使用QMCDecode免费转换QQ音乐加密格式

终极指南&#xff1a;如何在macOS上使用QMCDecode免费转换QQ音乐加密格式 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0…...

书匠策AI:你的毕业论文“外挂“已上线,这功能也太懂大学生了吧!

哈喽各位同学们&#xff0c;我是你们的论文写作科普博主。今天不讲什么"论文写作十大技巧"那种老掉牙的东西&#xff0c;今天要给大家安利一个我最近发现的宝藏工具——书匠策AI&#xff0c; 官网直达&#xff1a;www.shujiangce.com&#xff0c;微信公众号搜"书…...

DLSS Swapper完整指南:3分钟掌握游戏性能优化终极技巧

DLSS Swapper完整指南&#xff1a;3分钟掌握游戏性能优化终极技巧 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款革命性的开源工具&#xff0c;专门为PC游戏玩家设计&#xff0c;让你能够轻松管理、…...

8. Python 模块与包 深度解析

Python 模块与包 深度解析 目录 模块与包的概念模块基础 2.1 模块即 .py 文件2.2 import 语句与 from ... import2.3 模块搜索路径 sys.path 模块的编译与缓存包 4.1 常规包与 __init__.py4.2 命名空间包4.3 相对导入与绝对导入 __name__ 与 "__main__"模块与包的组…...

Wireshark抓包提取NTLMv2 Hash实战指南

1. 这不是“黑客演示”&#xff0c;而是一次内网安全加固前的必做体检你有没有遇到过这样的情况&#xff1a;某天突然收到告警&#xff0c;说域控日志里出现了大量异常的NTLM认证失败记录&#xff1b;或者渗透测试报告里赫然写着“存在明文凭据泄露风险”&#xff0c;但你翻遍所…...