在Elasticsearch中,`_refresh`和`_flush`操作虽然看似都与“刷新”有关,但它们的功能和作用范围有显著区别:

 

`_refresh`操作

- 目的:使索引操作(如新增、更新、删除文档)后的更改能够立即被搜索到。

- 工作原理:将内存缓冲区(in-memory buffer)中的数据写入到一个新的Lucene segment中,并将其加载到文件系统缓存(OS cache)中,此时文档可以被搜索到,但数据尚未写入磁盘。

- 触发方式:

  - 默认情况下,Elasticsearch每秒自动执行一次`_refresh`操作,但仅在最近30秒内有搜索请求的索引上执行。

  - 可以通过设置`index.refresh_interval`来调整刷新间隔,或者在索引操作时通过`?refresh=true`参数强制触发。

  - 当内存缓冲区达到一定大小(默认为节点堆内存的10%)时,也会触发`_refresh`。

- 特点:`_refresh`操作是同步的,会在操作完成前阻塞请求。

 

`_flush`操作

- 目的:将内存中的数据和事务日志(translog)中的操作永久写入磁盘,确保数据的持久性。

- 工作原理:

  - `_flush`操作会先执行`_refresh`,将内存缓冲区中的数据写入新的Lucene segment并加载到文件系统缓存中。

  - 然后,将这些segment从文件系统缓存强制刷入磁盘(通过`fsync`操作),并清空事务日志。

- 触发方式:

  - 默认情况下,Elasticsearch会在以下情况下自动触发`_flush`操作:

    - 每30分钟定时触发。

    - 当事务日志大小超过512MB时。

    - 在每次索引、批量、删除或更新操作完成后。

  - 也可以通过API手动触发`_flush`操作。

- 特点:`_flush`操作是异步的,不会阻塞请求。

 

主要区别

- 数据可见性:`_refresh`使数据在搜索中可见,而`_flush`主要用于数据的持久化,不影响数据的搜索可见性。

- 操作范围:`_refresh`操作主要涉及内存缓冲区和文件系统缓存,而`_flush`操作会将数据写入磁盘并清空事务日志。

- 性能影响:`_refresh`操作的开销相对较小,但频繁的`_refresh`可能会影响写入性能;`_flush`操作的开销较大,但可以通过调整参数优化性能。

 

总结来说,`_refresh`用于使新文档能够被搜索到,而`_flush`用于确保数据持久化到磁盘,两者在Elasticsearch的索引管理中各自扮演着重要的角色。

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

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

相关文章

Java核心数据类型:String深度解析(JDK 8+)

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 问题驱动:从用户注册场景说起 场景描述:开发一个用户注册功能时,需要处理用户名的校验、格式化和存储。你可能会遇到…

人员睡岗检测算法AI智能分析网关V4打造工业/安防/交通等多场景应用方案

一、引言​ 在工业生产、安防监控等多领域,众多岗位需员工长时间值守,如流水线工人、监控值班员等。但高强度工作易引发睡岗问题,导致生产效率下降,甚至造成安全事故与财产损失。传统人工巡检响应慢、成本高,难以满足…

自动生成提示技术突破:AUTOPROMPT重塑语言模型应用

AUTOPROMPT 预训练语言模型的显著成功促使人们研究这些模型在预训练期间学习了哪些类型的知识。将任务重新表述为填空题(例如,完形填空测试)是衡量此类知识的自然方法 但是,它的使用受到编写合适提示所需的手动工作和猜测的限制。为了解决这个问题,我们开发了 AUTOPROMP…

6个月Python学习计划 Day 7 - 复盘 + 测试日

第一周 Day 1 - Python 基础入门 & 开发环境搭建 Day 2 - 条件判断、用户输入、格式化输出 Day 3 - 循环语句 range 函数 Day 4 - 列表 & 元组基础 Day 5 - 字典(dict)与集合(set) Day 6 - 综合实战:学生信息…

Pycharm and Flask 的学习心得(9)

request对象: 1. request包含前端发送过来的所有请求数据 将from表单里的内容CV到request里面,可以添加if语句来做判断出请求类型后的操作 在网页上的表单上input的数据,后端如何获取呢? request对象获取前端发送来的数据 // …

设计模式-依赖倒转原则

依赖倒转原则 依赖倒转原则 (Dependency Inversion Principle, DIP) 是面向对象设计中 SOLID 原则的第五个原则。 它包含两条核心思想: 高层模块不应该依赖于低层模块。两者都应该依赖于抽象。 高层模块 (High-level modules): 通常包含复杂的业务逻辑和策略&…

AI赋能引爆短剧全球化风潮,腾讯云媒体处理助力短剧平台出海吸金

2023年,中国短剧市场以全平台8000万日投放、近500亿规模的爆发式增长震惊行业。紧凑的内容、爽快的剧情令国内观众迅速爱上了几分钟一集的微短剧。然而在平台内卷、监管收紧、巨头入场等因素的冲击下,不到两年时间,这条赛道就已陷入红海。但与…

开源第三方库发展现状

摘要:当前,开源第三方库生态正呈现爆发式增长趋势。GitHub 目前已托管超过 4.2 亿个代码仓库,远超早期统计的 1 亿规模,显示出开发者社区的活跃度持续攀升。同时,37 个主流包管理器所维护的开源组件数量可能已达到数千…

服务器开机自启动服务

前言: 将服务器中脚本开启自启动执行 步骤: 1.创建一个 systemd 服务文件: /etc/systemd/system/ 目录下创建一个新的服务文件。例如,命名为 myapp.service: sudo nano /etc/systemd/system/myapp.service2.编写 [Unit] Descri…

采用Bright Data+n8n+AI打造自动化新闻助手:每天5分钟实现内容日更

一、引言 在信息爆炸的时代,作为科技领域的内容创作者,我每天都要花费2-3小时手动收集行业新闻、撰写摘要并发布到各个社群。直到我发现Bright Datan8nAI这套"黄金组合",才真正实现了从"人工搬运"到"智能自动化&qu…

ROS云课三分钟-3D性能测试supertuxkart和游戏推荐等-国际象棋

ROS云课三分钟-破壁篇GCompris-一小部分支持Edu应用列表-2025-CSDN博客 很多时候,有一种思维定势,将人锁住,人口就是囚。 口人囚~口加人等于囚-CSDN博客 如果突破,跳出问题,再看问题。 这门课程,或者这个平…

学习率及相关优化参数详解:驱动模型高效训练

一、引言 在模型微调的核心参数体系中,优化相关参数是决定训练效率与模型性能的关键变量。它们如同精密机械的齿轮,彼此联动、相互影响,共同调控着模型在参数空间中的搜索路径。本文将围绕学习率、训练轮数、批处理大小、梯度累积和学习率调…

golang 柯里化(Currying)

使用场景:参数在语义上属于不同组,Go 语法无法在单次调用中声明多组可变参数,通过柯里化可以实现分步接收参数。 有的参数是在不同时间段产生,使用Currying可以让函数记住(缓存)参数,避免应用代…

电脑革命家测试版:硬件检测,6MB 轻量无广告 清理垃圾 + 禁用系统更新

各位电脑小白和大神们,我跟你们说啊!有个超牛的东西叫电脑革命家测试版,这是吾爱破解论坛的开发者搞出来的免费无广告系统工具集合,主打硬件检测和系统优化,就像是鲁大师这些软件的平替。下面我给你们唠唠它的核心功能…

R 语言科研绘图第 52 期 --- 网络图-分组

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

EfficientLLM: Efficiency in Large Language Models 高效大模型

目录 第1章:引言第2章:观察与见解2.1 总体观察(Overall Observations)2.2 从EfficientLLM基准中得出的新见解 第3章:背景3.1 大语言模型(LLMs)3.2 提升LLMs效率的方法3.2.1 硬件创新3.2.2 软件优…

SFTP工具类实现文件上传下载_

import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsEntry;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.*;/*** SFTP工具类*/ public class SftpFile {static Sessio…

RuoYi前后端分离框架将前端dist资源集成到Jar包中独立部署

一、背景 .NET体系下通常采用服务端渲染(如Razor Pages)或直接包含前端资源,而Java Spring Boot项目虽支持静态资源打包,但Vue CLI工程需要独立的构建流程。主管要求将编译后的Vue工程直接嵌入JAR包中方便维护,本人不推荐这样,原因有三: 第一、Vue CLI需要npm run buil…

基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路

摘要:本文整理自淘天集团高级数据开发工程师朱奥老师在 Flink Forward Asia 2024 流式湖仓论坛的分享。内容主要为以下五部分: 1、项目背景 2、核心策略 3、解决方案 4、项目价值 5、未来计划 01、项目背景 1.1 当前实时数仓架构 当前的淘天实时架构是从…

SIGCHLD信号--补充

进程一章讲过用wait和waitpid函数清理僵尸进程,父进程可以阻塞等待子进程结束,也可以非阻 塞地查询是否有子进程结束等待清理(也就是轮询的方式)。采用第一种方式,父进程阻塞了就不 能处理自己的工作了;采用第二种方式,父进程在处理自己的工作的同时还要记得时不时地轮询一 下,…