带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(下)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(下)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.20.Refresh/flush(中) https://developer.aliyun.com/article/1229331


Refresh API

 

刷新一个或多个索引,触发API 刷新文档对应的索引。


POST /my-index-000001/_refresh
POST <target>/_refresh
GET <target>/_refresh
POST /_refresh
GET /_refresh

使用刷新 API 显式刷新一个或多个索引。如果请求以数据流为目标,它会刷新流的支持索引。一刷新,使因为可用于搜索上次刷新的索引执行的所有操作。

 

默认情况下,Elasticsearch 每秒都会定期刷新索引,但仅限于在过去 30 秒内收到一个或多个搜索请求的索引。你可以使用index.refresh_interval设置更改此默认间隔。

 

刷新请求是同步的,在刷新操作完成之前不会返回响应。

 

刷新是资源密集型的。为了确保良好的集群性能,我们建议尽可能等待 Elasticsearch 的定期刷新,而不是执行显式刷新。

如果你的应用程序工作流索引文档,然后运行搜索以检索索引文档,我们建议使用索引 API 的refresh=wait_for 查询参数选项。此选项可确保索引操作在运行搜索之前等待定期刷新。

 

例子


刷新多个数据流和索引

POST /my-index-000001,my-index-000002/_refresh

刷新集群中的所有数据流和索引

POST /_refresh

Flush API

 

Flush 一个或多个数据流

 

POST /my-index-000001/_flush
POST /<target>/_flush
GET /<target>/_flush
POST /_flush
GET /_flush

刷新数据流或索引是确保当前仅存储在事务日志中的任何数据也永久存储在 Lucene 索引中的过程。重新启动时,Elasticsearch 会将所有未刷新的操作从事务日志中重放到 Lucene 索引中,以将其恢复到重新启动前的状态。Elasticsearch 会根据需要自动触发刷新,使用启发式方法在未刷新的事务日志的大小与执行每次刷新的成本之间进行权衡。

 

一旦每个操作被刷新,它就会永久存储在 Lucene 索引中。这可能意味着不需要在事务日志中维护它的额外副本,除非它因某些其他原因被保留。事务日志由多个文件组成,称为generation,一旦不再需要,Elasticsearch 将删除任何生成文件,从而释放磁盘空间。

 

也可以使用刷新 API 触发对一个或多个索引的刷新,尽管用户很少需要直接调用此 API。如果你在索引某些文档后调用刷新 API,则成功响应表明 Elasticsearch 已刷新在调用刷新 API 之前已编制索引的所有文档。

 例子

 

刷新特定的数据流或索引

POST /my-index-000001/_flush

刷新多个数据流和索引

POST /my-index-000001,my-index-000002/_flush


刷新集群中的所有数据流和索引

POST /_flush

结论

 

在本文档中,我们探索了两个紧密相关的 Elasticsearch 操作,_flush 和 _refresh 显示了它们之间的共性和差异。 我们还介绍了 Lucene 的基础架构组件-重新打开(reopen) 并提交

(commits) - 这有助于掌握 Elasticsearch中 _refresh 和 _flush 操作的要点。我们同时探讨了 _refresh 和 _flush 背后发生的时间的异同。

 

本文部分内容参考自CSDN——Elastic 中国社区官方博客

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
存储 安全 测试技术
带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(中)
带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(中)
115 0
|
存储 缓存 安全
带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(上)
带你读《Elastic Stack 实战手册》之39:——3.4.2.20.Refresh/flush(上)
|
存储 JSON 数据库
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(上)
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(上)
|
搜索推荐 API 索引
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(下)
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(下)
108 0
|
数据格式 索引
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(中)
带你读《Elastic Stack 实战手册》之17:—— 3.4.2.2.理解mapping(中)
带你读《Elastic Stack 实战手册》之38:——3.4.2.19.copy_to
带你读《Elastic Stack 实战手册》之38:——3.4.2.19.copy_to
151 0
|
机器学习/深度学习
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(下)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(下)
|
机器学习/深度学习 运维 数据可视化
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(上)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(上)
111 0
|
机器学习/深度学习 数据建模 索引
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(中)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(中)
110 0
|
索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)