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

简介: 带你读《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 中国社区官方博客

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
Java Docker 容器
Docker安装ES7
Docker安装ES7
404 0
|
XML 测试技术 uml
liteflow学习一
liteflow学习一
1146 0
|
druid Java 数据库
spring boot 整合 druid(深入浅出)
spring boot 整合 druid(深入浅出)
688 0
|
Java 开发工具
|
开发工具
Gitlab----管理员创建组并添加成员
Gitlab----管理员创建组并添加成员
2247 0
Gitlab----管理员创建组并添加成员
|
SQL 监控 druid
精通SpringBoot——第六篇:整合druid监控SQL执行
spring boot 整合druid实现sql监控
7720 0
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
904 150

热门文章

最新文章