ES近实时刷新与refresh_interval参数设置相关问题

这篇具有很好参考价值的文章主要介绍了ES近实时刷新与refresh_interval参数设置相关问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ES中的查询是近实时的,也就是说当数据添加到索引后并不能马上被查询到,等到索引刷新后才会被查询到,索引刷新相关字段为refresh_interval,默认为1s刷新一次。

为何说ES的查询是近实时的呢?首先先了解下ES写入数据的过程:

  1. ES写入数据是先把数据写进Luence的**"memory buffer"缓冲区**(同时也会把数据写一份到translog buffer,进行定时同步到磁盘的持久性操作),Elasticsearch 是基于 Lucene 实现的。ES 基于底层这些包,然后进行了扩展,提供了更多的更丰富的查询语句,并且通过 RESTful API 可以更方便地与底层交互。ES中的倒排索引、打分机制、全文检索原理、分词原理等技术都是Lucene提供的。
  2. 写进Luence的"memory buffer"缓冲区的数据还不能被查询,Luence会每1s调用refresh方法将缓冲区的数据刷新到FileSystemCache中,刷新时间可以修改,也就是可以修改refresh_interval参数。FileSystemCache是缓存层,会将数据生成segment文件,一旦生成segment文件,就能通过索引查询到了。segment文件就是倒排索引文件
  3. refresh完,memory buffer就清空了。每隔5s中,开始是保存到translog buffer到数据就会被flush到磁盘中
  4. 定期/定量从FileSystemCache中,结合translog内容flush index到磁盘中。做增量flush
    ES近实时刷新与refresh_interval参数设置相关问题
    总结:由上可知,es的查询是近实时的,写入到能查询的时间取决于refresh_interval参数设置

可以修改refresh_interval参数:(如果需要写入大量数据,可以先把刷新周期禁用,写完后再刷新;如果写入日志这种实时性不是很高的数据,可以把刷新周期设置长些)文章来源地址https://www.toymoban.com/news/detail-461308.html

设置刷新周期:
PUT /your_index/_settings
{
  "refresh_interval": 1s //毫秒:ms、秒:s、分:m
} 

重置refresh_interval:(把刷新周期变为默认,即1s)
PUT /your_index/_settings
{
  "refresh_interval": null
} 

禁止刷新:
PUT /your_index/_settings
{
  "refresh_interval": -1
} 

手动刷新:
POST /your_index/_doc?refresh
{
  //写入、修改数据
} 

到了这里,关于ES近实时刷新与refresh_interval参数设置相关问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flutter】Flutter 使用 pull_to_refresh 实现下拉刷新和上拉加载

    【Flutter】Flutter 使用 pull_to_refresh 实现下拉刷新和上拉加载 你好!在移动开发中,下拉刷新和上拉加载是非常常见的功能。 今天,我将为你介绍一个非常实用的 Flutter 包—— pull_to_refresh 。在这篇文章中,我们将学习如何使用这个包,以及如何在实际业务中应用它。 文章的重

    2024年02月07日
    浏览(32)
  • elasticsearch ES搜索权重设置(boost参数)

    摘要:7.Elasticsearch boost的搜索条件权重_lm324114的专栏-CSDN博客_boost es 摘要2:elasticsearch boost - 简书 摘要3:Elasticsearch 10 Boost(提升权重) - 简书

    2024年02月12日
    浏览(31)
  • 理解ES的refresh、flush、merge

    对于任何数据库的写入来讲fsync刷盘虽然保证的数据的安全但是如果每次操作都必须fsync一次,那fsync操作将是一个巨大的操作代价,在衡量对数据安全与操作代价下,ES引入了一个较轻量的操作refresh操作来避免频繁的fsync操作。 在ES中,当写入一个新文档时,首先被写入到内

    2024年02月08日
    浏览(42)
  • vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新

      增加分页:

    2024年02月13日
    浏览(40)
  • R语言【paleobioDB】——pbdb_intervals():通过参数选择,返回多个地层年代段的基本信息

     Package  paleobioDB  version 0.7.0 paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。 参数【...】 :其余可通过 API 调用的参数。所有可用参数详见PBDB Data Service: Lists of geological time intervals。

    2024年02月02日
    浏览(32)
  • Elasticsearch 8.9 refresh刷Es缓冲区的数据到Lucene,更新segemnt,使数据可见

    下面的图来自ElasticSearch——刷盘原理流程,这篇文章主要讲的是refresh命令把ES写入索引缓冲区的数据刷进Lucene,使数据可供查询,搜索,否则,在索引缓冲区是不可见的,不涉及到在 translog.log 和 Lucene 的数据结构。 通过这个流程知道ES如何把索引缓冲区的数据刷进Lucene的,

    2024年02月04日
    浏览(34)
  • vscode不实时刷新文件怎么办?(打开文件内容不变)(vscode日志不刷新)

    有时用vscode打开一个日志文件,明明这个日志不断在写,但是vscode上的内容就是不变化。。。 反复打开,发现最后一行就没变化过。。。 解决办法:将这个文件拷贝一份,再打开就行了 这个问题的原因还不是很清楚。。。 20230816 在日常开发中,Visual Studio Code (VSCode) 是一款

    2024年02月03日
    浏览(42)
  • vue 热更新不生效?页面没实时刷新解决办法

            检查页面的路由地址是否有误,尤其是 字母大小写 比如上图,大小写写错了页面并不会报错,但是热更新会失效。  

    2024年01月24日
    浏览(35)
  • springboot集成webstock实战:服务端数据推送数据到客户端实现实时刷新

        之前介绍过springboot集成webstock方式,具体参考: springboot集成websocket实战:站内消息实时推送 这里补充另外一个使用webstock的场景,方便其他同学理解和使用,废话不多说了,直接开始!简单介绍一下业务场景:     现在有一个投票活动,活动详情中会显示投票活动的参与人数、访

    2024年02月08日
    浏览(91)
  • VSCode中修改HTML代码无法实时刷新到浏览器页面的问题解决

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 首先下载Live Sever 插件 参考:https://blog.csdn.net/mo_sss/article/details/132321681 下载后重启VS

    2024年02月22日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包