Elasticsearch refresh vs. flush
问:
若一个新的文档索引进ES索引,则它在索引操作执行后约1s可以搜索到。然而我们可以直接调用_flush
或者_refresh
对索引进行操作。那么这两者有什么区别呢——看起来这两个操作的结果都类似,文档都是立即可以被搜索的?
答:
我们详细解释一下这两种操作:
refresh
操作有效地对Lucene index reader调用了reopen,使得在数据的那个时间快照进行了更新。这是Lucene拥有的近实时搜索api的特性。
ES refresh
让文档可以搜索到,但是不保证这些信息被写入disk进入一个永久的存储状态,因为它并没有调用fsync
,这就不能保证持久性了。让你数据获得持久性的是Lucene commit,这个操作代价比较大。
当你可以每秒都调用lucene reopen时,你不能这样使用lucene的commit。
借助lucene你可以尽可能频繁地调用reopen以使新的文档可以被搜索到,但是你仍然需要调用commit来确保数据写入disk并且fsynced,这样会安全。
ES通过增加了一个在每个shard(一个lucene的索引)上的事务解决这个问题,还未被commit的写操作会被存起来。事务log被fsynced,已经安全了,所以你每时每刻都获得了持久性,甚至对于那些没有被commit的文档,都是这样。因为refresh
每秒自动地发生,所以你可以近实时地搜索文档,并且如果有不好的事件发生,事务log可以被替代从而恢复那些丢失的文档。事务log的优越性是它可以被用来做其他的事情,例如提供实时的get_by_id
。
elasticsearch flush
高效地触发lucene commit,并同时清空事务log,因为一旦数据在lucene层面提交,持久性将会由lucene保证。Flush
同样是一个api,也可以进行微调,虽然通常没有必要这样。Flush
自动发生取决于事务log增加了多少操作、它们有多大、最后一次flush何时发生。
原文链接:http://www.jianshu.com/p/0e9f6346f1fe
相关推荐
最新版windows elasticsearch-7.17.6-windows-x86_64.zip最新版windows elasticsearch-7.17.6-windows-x86_64.zip
elasticsearch-6.1.2.tar.gz,elasticsearch-5.5.2.tar和head插件 linux下安装软件,下载后即可安装使用
elasticsearch-7.17.6及对应版本IK分词 适合人群:elasticsearch初学者 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elastic...
Elasticsearch(elasticsearch-7.16.2-linux-x86_64.tar.gz适用于Linux x86_64)是一个高度可扩展的开源全文本搜索和分析引擎。它使您可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索...
最新版linux elasticsearch-7.12.0-linux-x86_64.tar.gz最新版linux elasticsearch-7.12.0-linux-x86_64.tar.gz
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。本资源是6.8.18版本
最新版linux elasticsearch-7.13.4-linux-x86_64.tar.gz最新版linux elasticsearch-7.13.4-linux-x86_64.tar.gz
最新版windows elasticsearch-7.13.2-windows-x86_64.zip最新版windows elasticsearch-7.13.2-windows-x86_64.zip
elasticsearch-2.3.4.rpm elasticsearch-2.3.4.rpm elasticsearch-2.3.4.rpm elasticsearch-2.3.4.rpm
ranger-2.1.0-elasticsearch-plugin.tar.gz
ElasticSearch-head(后续简称es-head)是ElasticSearch的一个插件,提供了es 的可视化操作界面.
Elasticsearch(elasticsearch-7.17.0-x86_64.rpm 适用于rpm x86_64 )是一个高度可扩展的开源全文本搜索和分析引擎。它使您可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索功能和要求的...
最新版linux elasticsearch-7.13.2-linux-x86_64.tar.gz最新版linux elasticsearch-7.13.2-linux-x86_64.tar.gz
elasticsearch-6.6.2是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能
最新版elasticsearch-7.17.0-windows-x86_64
elasticsearch-5.6.3.zip,最低2分,送给打不开网站的你
elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4...
最新版windows elasticsearch-7.16.2-windows-x86_64.zip
ElasticSearch是一个搜索服务器,提供了一个分布式多用户能力的全文搜索引擎。 rpm包
elasticsearch-head 插件, 基于google的浏览器都能用 测试360极速浏览器,及原生chrome 都能用