Elasticsearch 的 refresh

Index, Update, Delete, and Bulk APIs 支持通过设置 refresh 来该请求是否对查询可见;有如下值可以使用:

  • 空字符串或者 true
    当操作发生后,立即更新相关的主分片以及复制分片(并不是整个索引),更新的文档会立即出现在查询结果中。如果做此修改要仔细的思考和验证,不管从索引还是查询的角度,都不会导致性能变差

  • wait for
    在响应之前,等待请求所做的更改被刷新可见。这个并不会强制立即刷新,而是等待一次刷新发生。Elasticsearch 自动的在每个(index.refresh_interval)周期内刷新分片,该默认时间为 1s,可以动态修改。调用 Refresh API 或者设置支持refreshtrue 的API 也会造成刷新,从而导致已经运行 refresh=wait_for 的请求返回。

  • false(默认)
    不采取任何刷新相关操作。此请求所做的更改将在请求返回后的某个时间变得可见。

选择要使用的配置

除非你有充足的理由需要等待改变变为可见,否则就使用 refresh=false,因为这个是默认的,所以 ULR 上也不需要保留这个参数。这个是最简单与便捷的选择。

如果你要求必须更改与请求同步可见,那么就需要在向 Elasticsearch 添加更多负载和等待更长时间的响应之间进行选择。以下几点有助于你作出决定:

  • 设置为 wait_for 相比于设置为 true,索引上的更改越多,保留的工作也越多,如果索引每个周期内 index.refresh_interval 更改一次,则不保存任何工作。

  • 设置为 true 会创造低效的索引结构(小的 segment),然后必须将其合并为更大的索引结构(大的 segment)。意味着设置为 true 的代价有创建小段的索引时间,查询小段的查询时间,以及合并为大段的合并时间。

  • 永远不要连续启动多个 refresh=wait_for 的请求。而是将它们批处理为一个带 refresh=wait_for 的 bulk 请求,Elasticsearch 会并行的启动它们,并在全部完成后返回。

  • 如果刷新时间间隔设置为 -1,将会禁止自动刷新,那么带 refresh=wait_for 的请求将会无限等待,直到一些操作引起刷新。相反的,设置 index.refresh_interval 值比默认值小,如 200ms ,会使 refresh=wait_for 响应变快,但是依然会产生低效的段。

  • refresh=wait_for 仅影响其上的请求,但是,通过立即强制刷新,refresh=true 会影响其他正在进行的请求。通常来说,你有一个正常运行的系统,你并不希望去干扰它,那么 refresh=wait_for 会是一个很小的修改。

refresh=wait_for 也可能强制刷新

如果一个 refresh=wait_for 请求进来,这个时候已经有 index.max_refresh_listeners 个请求(默认1000)等待那个分片刷新,那个这个请求就会表现为 true: 它将会强制刷新。这保证了当 refresh=wait_for 请求返回时更改对于搜索可见,同时防止未检查的资源被阻塞的请求使用。如果一个请求因为监听 slog 不够而强制刷新,那么响应体中会包含 "forced_refresh": true;

Bulk 请求仅仅会占用每个接触分片一个的 slot,无论对该分片修改多少次。

Elasticsearch refresh相关推荐

  1. elasticsearch中 refresh 和flush区别【转】

    elasticsearch中有两个比较重要的操作:refresh 和 flush refresh操作 当我们向ES发送请求的时候,我们发现es貌似可以在我们发请求的同时进行搜索.而这个实时建索引并可以 ...

  2. 【Elasticsearch】Elasticsearch:Elasticsearch中的refresh和flush操作指南

    1.概述 转载:https://www.cnblogs.com/sanduzxcvbnm/p/12092561.html 在今天的文章里,我们来主要介绍一下Elasticsearch的refresh及 ...

  3. Elasticsearch 之 commit point | Segment | refresh | flush 索引分片内部原理

    转载自: http://www.6aiq.com/article/1539308290695 基本概念 Segments in Lucene 众所周知,Elasticsearch 存储的基本单元是sh ...

  4. 【ES系列】ELASTICSEARCH中的REFRESH和FLUSH

    起因:增删改之后,马上查找,数据不会发生变化 发现elasticsearch执行增删改之后,是不会立即进行刷新的,需要配置refresh这个参数 Lucene的一个Index会由一个或多个sub-in ...

  5. Elasticsearch:Elasticsearch 中的 refresh 和 flush 操作指南

    在今天的文章里,我们来主要介绍一下 Elasticsearch 的 refresh 及 flush 两种操作的区别.如果我们从字面的意思上讲,好像都是刷新的意思.但是在 Elasticsearch 中 ...

  6. Elasticsearch中refresh和flush的区别是什么

    在ES中, 要保证被索引的文档能够立即被搜索到, 有两种方法:_refresh 或者_flush. 那么二者的区别是什么呢?要搞懂这个问题, 就需要对ES中文档的索引过程有个了解. 我们知道ES的索引 ...

  7. elasticsearch(ES)的clear、refresh、fresh的区别及含义

    一. refresh 官方文档:A refresh makes all operations performed on an index since the last refresh availabl ...

  8. 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作

    文章目录 1.概述 1.1 索引强制合并 1.1.1 实战 1.2 缓存清理 1.3.flush操作 1.4.refresh操作 1.概述 1.1 索引强制合并 强制合并的功能为强制合并一个或多个索引 ...

  9. 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)

    现有流程的问题,每次都必须等待fsync将segment刷入磁盘,才能将segment打开供search使用,这样的话,从一个document写入,到它可以被搜索,可能会超过1分钟!!!这就不是近实时 ...

  10. 2021年大数据ELK(十七):Elasticsearch SQL 订单统计分析案例

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 订单统计分析案例 一.案例介绍 二.创建索引 三.导入测试数据 四.统计不同支 ...

最新文章

  1. Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?
  2. PHPMailer——发送邮件函数封装
  3. Linux启动/停止/重启Mysql数据库的方法
  4. 中文论文万能句型_干货|SCI论文写作的万能句型~
  5. 正则表达式确实是一种考验
  6. ORB-SLAM 解读(六)ORB特征点构建BoW
  7. 台达plc自由口通讯_自由口通讯问题无法接收数据
  8. MySQL插入数据错误Incorrect string value: ‘\xE8\x85\xBE\xE8\xAE\xAF‘ for column ‘custname‘ at row 1
  9. 基于华为云轻松搭建属于自己的网站 (Linux,Apache,MySQL,PHP)
  10. html div边框宽度,边框的宽度
  11. matlab点集配准,matlab练习程序(对应点集配准的四元数法)
  12. android最佳实践:网络 电池 压缩
  13. 为了梦想而奋斗的人值得敬佩
  14. java解非线性方程组_非线性方程与方程组的数值解法
  15. 汽车电子功能安全标准ISO26262解析(十一)——安全机制
  16. redis数据类型有哪些
  17. 驾押人员安全教育培训系统隐私政策
  18. 4.3 CISC和RISC的基本概念
  19. 使用docker部署zabbix,自定义微信报警
  20. 超全!元器件封装查询图表(收藏)

热门文章

  1. hexo博客可以在百度谷歌搜索到
  2. 计算机插座符号,插座符号大全
  3. python-pandas-简单的excel表格按行去重
  4. ART中 MIR -- LIR -- 机器码 的流程
  5. wword中如何在方框(□)中打钩(√)
  6. 求两个数的最小公倍数方法汇总
  7. 支付网关 | 京东618、双11用户支付的核心承载系统上篇
  8. java 方法缺省参数
  9. 求齐次线性方程组的基础解系matlab,MATLAB学习笔记:齐次线性方程组的基础解系...
  10. 阿里云-对象存储OSS成本优化