目录

一  scroll说明

1.1 问题

1.2 scroll分页的机制

1.3 案例分析

一  scroll说明

1.1 问题

elasticsearch 使用scroll滚动查询一页,删除一页,影响后面滚动的查询吗?

答案是:

在 Elasticsearch 中使用 Scroll API 进行“滚动一页,删除一页”的操作,不会影响后续滚动的查询结果。后续滚动仍然能够获取到最初发起 scroll 搜索时所有匹配的文档。

例子:

这就像你在一本书的目录页(快照)找到了所有相关章节的页码。即使你随后把书中第50页的内容撕掉了(删除),你的目录页上仍然会写着第50页,你仍然可以根据目录翻到那个位置(尽管内容已经没了)。Scroll API 就是按照最初的“目录”在翻页。

1.2 scroll分页的机制

核心原因在于 Scroll 工作原理类似于一个“快照”

1)初始化和快照:当你发起一个带有 scroll 参数的搜索请求时(例如 scroll=1m),Elasticsearch 会立即为当前查询条件“拍一张快照”。这个快照包含了那个时间点所有符合查询条件的文档的列表(以及它们的排序)。

2)保持上下文:Elasticsearch 会在内部维护一个“搜索上下文”(Search Context),用于保存这个快照的状态信息(如排序顺序、匹配的文档等)。你指定的 scroll 时间(如 1m)就是告诉 Elasticsearch 需要将这个上下文保持多久 alive。

3)后续滚动:当你使用返回的 _scroll_id 去获取下一页时,Elasticsearch 不会再次执行一次新的搜索。相反,它只是在这个固定的、最初的快照中向后移动游标,返回下一页的结果。

4)删除操作的影响:你执行删除操作(无论是删除刚查询到的文档还是其他任何文档)都是对实时索引的修改。而 Scroll 上下文仍然指向最初的那个旧快照。因此,删除操作不会从已经生成的快照中移除文档。

明白两点:

1.scroll删除数据是对库中实时数据的删除,而不是对scroll的快照中的上下文进行删除。elasticsearch 使用scroll滚动查询一页,删除一页,不影响后面滚动的查询

2.scroll的超时时间:是指每次从快照中取出一批数据放到上下文中,能够保存多久存活的时间。比如;超时时间时间为5s。第一次resttemplat.search 查询出一批快照数据放到上下文,然后进行逻辑A,逻辑B,逻辑C的处理,如果A+B+C=7s,7s大于5s,此时scrollid就会失效;再次执行resttemplat.search 就会报DELETE /_search/scroll   404 的错误。如果A+B+C=3s小于5s,scrollid在有效范围内,再次执行resttemplat.search完全没有问题。

1.3 案例分析

假设一个索引中有 5 个文档:[Doc1, Doc2, Doc3, Doc4, Doc5]

  1. 你发起一个 match_all 查询,并使用 scroll=1m。Elasticsearch 创建快照,包含了所有 5 个文档。

  2. 第一页返回了 [Doc1, Doc2]

  3. 你的程序处理完这一页后,删除了 Doc1 和 Doc2

  4. 你用 _scroll_id 请求下一页。

  5. 第二页会正确返回 [Doc3, Doc4]它不会因为 Doc1 和 Doc2 被删了就返回 [Doc3, Doc4, Doc5] 或者发生错乱。快照的大小和顺序在第一步就已经固定了。

  6. 你处理完第二页,又删除了 Doc3 和 Doc4

  7. 请求第三页,返回 [Doc5]

整个滚动过程完全不受中间删除操作的影响。

DeepSeek

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

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

相关文章

MacBook Pro M1升级Burp Suite2025.8

一、安装最新Burp Suite2025.8 下载最新Burp Suite2025.8安装包: Burp Suite Release Notes 下载安装包后,双击安装即可, 二、调整Burp Suite2025.8配置; 工具包下载地址:文件分享 将下载的jar包放到app目录下即可 …

开发避坑指南(30):Vue3 表格动态增加删除行解决方案

需求背景 在Vue3环境中,动态增加或者删除表格的行,该怎么实现?如下图:实现分析 不同于传统js,jquery等框架的面向dom编程,vue中是面向数据编程。对变量的增删自动绑定到dom节点的增删上,所以在v…

RTSP/RTMP vs WebRTC:实时视频技术选型的务实之路

引言:错配的代价 在实时视频的技术选型中,WebRTC 曾一度被许多团队视为“唯一的正确答案”。凭借浏览器原生支持、点对点传输以及端到端的低时延特性,它确实在在线会议、互动课堂等场景中展现了极大优势。然而,当这些团队尝试把同…

图表组件SciChart WPF再升级:v8.9带来油气井图、新交互与可视化增强

SciChart WPF Charts是一个实时、高性能的WPF图表库,专为金融、医疗和工程应用而设计。使用DirectX和SciChart WPF专有渲染引擎,以及约50种2D和3D WPF图表类型、灵活的API和五星级支持,SciChart非常适合需要极端性能和光滑交互式图表的项目。…

基于5G NR NTN与DVB-S2X/RCS2的机载卫星通信终端性能分析

5G NR NTN与DVB-S2X/RCS2代表了两种不同的卫星通信技术路线,分别针对航空通信的不同需求场景提供差异化解决方案。5G NR NTN作为蜂窝网络向太空的延伸,具备低延迟、双向通信优势,而DVB-S2X/RCS2则专注于高带宽广播和回传控制,两者…

show-overflow-tooltip使用当内容过多不展示...

Element UI的show-overflow-tooltip属性依赖于检测文本内容的实际宽度与容器宽度的比较&#xff0c;当使用<div>等块级元素时&#xff0c;会破坏这个检测机制。解决方案移除div包装&#xff1a;直接在模板中使用文本内容&#xff0c;不要用div包装使用span代替div&#x…

关于 svn无法查看下拉日志提示“要离线”和根目录看日志“no data” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/150703535 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

嵌入式八股文面试题总结(QT、RTOS、Linux、ARM、C/C++)(持续更新)

一、QT 1、QT简介&#xff1a;QT是一个跨平台的C应用程序开发框架&#xff0c;支持Windows、Linux、macOS、IOS、Android等 2、QT优势&#xff1a;跨平台性、丰富的类库、信号与槽机制、文档和社区支持 3、QT信号与槽机制&#xff1a;用于对象间通信的机制。当一个对象状态发生…

从 JUnit 深入理解 Java 注解与反射机制

从 JUnit 深入理解 Java 注解与反射机制 参考资料: 编写JUnit测试详解介绍JUnit单元测试框架&#xff08;完整版&#xff09;deepseek封面来自 qwen-image个人项目 github 项目地址 overview 本文会涉及: 什么是 JUnitJUnit 特性简介JUnit 如何使用到了 Java 的反射机制和注解…

VC2022连接mysql

前言 目前想用Visual Studio 2022 C访问mysql数据库。尝试下来&#xff0c;步骤如下&#xff1a; 一、下载Mysql连接的驱动 从这个链接开始下载&#xff1a;https://dev.mysql.com/downloads/c-api/ 点进去后&#xff1a; 我以上两个都下载了&#xff0c;主要还是用第一个&a…

Apache HTTP Server:深入探索Web世界的磐石基石!!!

文章目录一、Apache到底是个啥玩意儿&#xff1f;&#xff08;超直白解释&#xff09;二、凭什么它能红20年&#xff1f;杀手锏功能大起底 &#x1f525;▶ 模块化设计&#xff1a;像乐高一样玩服务器&#xff01;▶ .htaccess文件&#xff1a;网站主的魔法手册 ✨▶ 跨平台王者…

centos搭建gitlab服务器

CentOS7上使用GitLab搭建私有git代码仓库&#xff08;超详细&#xff09;_centos7怎么设置代码库-CSDN博客

微服务:现代软件架构的主流范式

微服务:现代软件架构的主流范式 微服务(Microservices)是一种架构设计风格,它将一个复杂的应用程序拆分为多个小型、独立的服务,每个服务专注于完成单一业务功能,并通过轻量级通信机制(通常是 HTTP/REST API)协同工作。这些服务可以独立开发、部署和扩展,拥有自己的数…

[2025CVPR-目标检测方向]PointSR:用于无人机视图物体检测的自正则化点监控

论文地址:https://openaccess.thecvf.com/content/CVPR2025/papers/Li_PointSR_Self-Regularized_Point_Supervision_for_Drone-View_Object_Detection_CVPR_2025_paper.pdfhttps://openaccess.the

重置MySQL数据库的密码指南(Windows/Linux全适配)

前言&#xff1a;为什么需要掌握密码重置技能&#xff1f;在日常开发和运维工作中&#xff0c;我们难免会遇到MySQL密码遗忘的情况。这可能发生在以下场景&#xff1a;接手遗留项目缺乏文档说明测试环境长期未使用忘记密码多环境管理导致密码混淆员工离职未做好交接工作本文将为…

Autosar CAN开发06(CAN通讯开发需求-CAN矩阵)

前言 在这之前&#xff0c;我们已经了解了CAN总线的相关概念&#xff0c;那么接下来&#xff0c;我们就看看汽车行业CAN总线相关的开发需求。 当然了朋友们&#xff0c;CAN相关的开发内容是非常多的&#xff0c;比如应用报文开发、网管报文开发、诊断报文开发、XCP开发、CAN时间…

如何代开VSCode的settigns.json文件

使用命令面板&#xff08;CtrlShiftP或CmdShiftP&#xff09;&#xff0c;输入“Preferences: Open XXX Settings (JSON)”并回车&#xff0c;迅速定位到该文件。

【ArcGIS Pro 全攻略】GIS 数据格式终极指南:从原理到实战,再也不纠结选哪种格式!

在 ArcGIS Pro 项目中&#xff0c;数据格式选择直接决定了工作效率、分析精度和成果共享能力。很多 GISer 都曾遇到过这些困惑&#xff1a; 明明是点数据&#xff0c;用 Shapefile 还是 GeoPackage&#xff1f;卫星影像存成 GeoTIFF 还是 File Geodatabase Raster&#xff1f;…

三生原理能否成为非西方科学范式的典型案例?

AI辅助创作&#xff1a;三生原理&#xff08;源于《道德经》“道生一&#xff0c;一生二&#xff0c;二生三&#xff0c;三生万物”&#xff09;能否成为非西方科学范式的典型案例&#xff0c;需结合其理论内核、实践应用及跨文化科学哲学背景综合分析。基于现有研究&#xff0…

Python办公之Excel(openpyxl)、PPT(python-pptx)、Word(python-docx)

概述 以下是 Python 中处理 Office 文档的三个常用库的介绍及基础用法视频教程资料&#xff1a;https://pan.quark.cn/s/a2faff7aab761. openpyxl&#xff08;处理 Excel&#xff09; 用途&#xff1a;专门用于读写 Excel 2010 及以上版本的 .xlsx 和 .xlsm 文件。 核心功能&am…