首页 > 其他分享 >ElasticSearch中的Scroll机制

ElasticSearch中的Scroll机制

时间:2023-04-27 15:00:09浏览次数:30  
标签:游标 Id ElasticSearch Elasticsearch 机制 数据 Scroll

Elasticsearch 中的 Scroll Id 机制是一种用于批量检索大量数据的机制。

当我们需要批量获取大量数据时,直接使用搜索 API 可能会遇到一些性能问题。此时, Scroll Id 机制则能够帮助我们优化查询性能。该机制类似于一个游标,可以通过 Scroll API 来获取每个批次的结果。每个结果都包含一个新的 Scroll Id,该 ID 可以用于检索下一个批次的结果,这样我们就可以按需逐批获取数据。

使用 Scroll Id 机制的好处在于可以取代传统的分页方式,因为它不需要在每次搜索的结果中指定大小和偏移量。

此外,由于 Elasticsearch 并不需要在每次搜索中重建内部状态,所以 Scroll Id 机制可以更高效地处理批量数据。

虽然 Elasticsearch 中的 Scroll Id 机制具有很多优点,但也存在一些缺点。

具体来说, Scroll Id 机制可能会导致以下问题:

1. Scroll Id 机制需要占用服务器内存以保存游标状态,如果数据量过大或者游标过多,可能会导致 Elasticsearch 的内存占用过高,从而影响其他服务的正常运行。

2. 使用 Scroll Id 机制获取结果时,必须在每一个批次结果返回后立即对结果进行处理。如果处理速度跟不上结果获取速度,可能会导致数据积压,导致内存不够用或磁盘 I/O 不足等问题。

3. Scroll Id 机制只能在游标有效期内获取数据,一旦过期则无法获取。默认的有效期为 1 分钟,但可以通过设置 Search Request 上的 scroll 参数来更改有效期。如果游标过期但未及时处理数据,可能会导致数据丢失。

4. Scroll Id 机制只是针对检索,无法保证数据不被修改或删除。如果数据在检索过程中被修改或删除,可能会导致 Scroll Id 所指向的数据不准确。

 

综上所述,Scroll Id 机制是一种不错的批量检索机制,但需要注意消耗内存、处理速度、有效期和数据修改等问题。

标签:游标,Id,ElasticSearch,Elasticsearch,机制,数据,Scroll
From: https://www.cnblogs.com/8765h/p/17358928.html

相关文章

  • TrueNAS core :samba文件共享设置中的:2层ACL控制机制
    如题。之所以是2层ACL,首先,复杂的权限控制场景,决定了只是用单纯的、传统的:owner、group、other:方式肯定不能胜任。其次,服务本身是分级的,samba提供的是共享服务,自身需要一套ACL控制;而samba的共享文件及文件目录资源本身是驻留在文件系统之中的——即:文件系统......
  • elastic-job源码(2)-选举机制
    选举机制:利用zookeeper分布式锁机制,每一个job都存在节点选举机制,用于job分片处理。  Job在初始化的时候就会实施选举机制如下初始化的代码: publicvoidregisterStartUpInfo(finalbooleanenabled){//开始所有的监听器listenerManager.startAllListeners();......
  • kubernetes 服务发现机制:环境变量和DNS
    1. 环境变量创建pod资源时,kubectl会将其所属名称空间内的每个活动的service对象以一系列环境变量的形式注入其中。但是也仅仅只是注入创建时候的资源,后面的变化它时不感知的。我有个game服务:qiteck@server:~$sudokubectlgetservice|grepgamegameNodePort......
  • 基于Java开发的全文检索、知识图谱、工作流审批机制的知识库
    一、项目介绍一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,应用在需要进行常用文档整理、分类、归集、检索的地方,适合知识密集型单位/历史文档丰富的单位,或者大型企业、集团。为什么建立知识库平台?二、项目所用技术springboot+vue+tinyMce+activiti+elastics......
  • java垃圾回收机制(面试)
    1.1堆空间结构Java的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java自动内存管理最核心的功能是堆内存中对象的分配与回收。Java堆是垃圾收集器管理的主要区域,因此也被称作GC堆。Eden区、两个Survivor区S0和S1都属于新生代,中间一层属于老年......
  • 类加载机制
    什么是类加载机制Java虚拟机在把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程称作虚拟机的类加载机制。类加载的时机一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期将会经历以......
  • 微信小程序 swiper scroll 应用
    swiper演示视图wxml<!--中部上游信息--><swiperclass="swiper"autoplaycircularprevious-margin="20rpx"next-margin="60rpx"><swiper-itemwx:for="{{upstreamList}}"wx:key="id"><......
  • 线程机制与事件机制
    进程与线程进程程序的一次执行--占有一片独有的内存空间可通过windows任务管理器查看进程线程进程内的一个独立执行单元是程序执行的一个完整流程是CPU的最小调度单位相关知识应用程序必须运行在某个进程的某个线程上一个进程中至少有一个运行的线程--主线程--进......
  • elasticsearch 实现查询忽略大小写
    背景:在搜索的时候经常会有一种场景就是忽略大小写,不管你输入的是全大写还是全小写还是大小写混合,希望都能够搜索出结果。解决思路:Elasticsearch中的lowercasenormalizer将文本转换为小写,并将其作为规范形式存储在索引中。这可以确保在搜索和比较文本时忽略大写字母的差异,从而提......
  • 【❀Java虚拟机】对象终止机制
    什么是对象终止机制?Java语言提供了对象终止( finalization)机制来允许开发人员提供对象被销毁之前的自定义处理逻辑处理。当垃圾回收器发现没有任何引用指向某个对象时,那么就会在垃圾回收中清除这个对象,在垃圾回收器回收此对象之前,会先调用这个对象的 finalize()方法。我们......