博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ElasticSearch refresh API
阅读量:6898 次
发布时间:2019-06-27

本文共 975 字,大约阅读时间需要 3 分钟。

    在 Elasticsearch 中,写入和打开一个新段的轻量的过程叫做 refresh 。 默认情况下每个分片会每秒自动刷新一次。这就是为什么我们说 Elasticsearch 是  实时搜索: 文档的变化并不是立即对搜索可见,

  但会在一秒之内变为可见。

    这些行为可能会对新用户造成困惑: 他们索引了一个文档然后尝试搜索它,但却没有搜到。这个问题的解决办法是用 refresh API 执行一次手动刷新:

#刷新所有索引。POST /refresh#刷新my_logs索引。POST /my_logs/_refresh

    尽管刷新是比提交轻量很多的操作,它还是会有性能开销。 当写测试的时候, 手动刷新很有用,但是不要在生产环境下每次索引一个文档都去手动刷新。

      相反,你的应用需要意识到 Elasticsearch 的近实时的性质,并接受它的不足。

 

    并不是所有的情况都需要每秒刷新。可能你正在使用 Elasticsearch 索引大量的日志文件, 你可能想优化索引速度而不是近实时搜索, 可以通过设置 refresh_interval , 降低每个索引的刷新频率:

    

    refresh_interval 可以在既存索引上进行动态更新。 在生产环境中,当你正在建立一个大的新索引时,可以先关闭自动刷新,待开始使用该索引时,再把它们调回来:

    

    refresh_interval 需要一个 持续时间 值, 例如 1s (1 秒) 或 2m (2 分钟)。 一个绝对值 1 表示的是 1毫秒 --无疑会使你的集群陷入瘫痪。

    

    例子:

#创建索引PUT /my_logs/#关闭自动刷新。PUT /my_logs/_settings{ "refresh_interval": -1 }#刷新所有索引。POST /refresh#手动刷新my_logs索引。POST /my_logs/_refresh#索引数据POST /my_logs/mytype{  "title":"hello1"}#开启自动刷新。PUT /my_logs/_settings{ "refresh_interval": "1s" }#查询数据GET /my_logs/mytype/_search

 

转载地址:http://nmddl.baihongyu.com/

你可能感兴趣的文章
最新的Zynq资料整理
查看>>
AS 功能 设置 SDK AVD 简介 MD
查看>>
MySql之存储过程的使用
查看>>
17秋 SDN课程 第四次上机作业
查看>>
gradle windows上面安装配置
查看>>
基于 HTML5 WebGL 的 3D SCADA 主站系统
查看>>
CentOS上安装分布式文件系统FastDFS & 配置和问题解决
查看>>
Netty 包头
查看>>
Unity3D Asset文件导出3DMax 可编辑格式
查看>>
Java DES 加解密("DES/ECB/PKCS1Padding")
查看>>
图像滤镜艺术---Swirl滤镜
查看>>
hdu 2842(矩阵高速幂+递推)
查看>>
Servlet、Tomcat访问(access)日志配置、记录Post请求参数
查看>>
bootstrap table 分页只显示分页不显示总页数等数据
查看>>
Tomcat控制台总是打印日志问题的解决办法
查看>>
各种Js插件汇总;JavaScript插件
查看>>
电脑自动关机导致文件丢失怎么办?
查看>>
sublime 安装ctags跳转以及跳转快捷键
查看>>
Hive学习之路 (十八)Hive的Shell操作
查看>>
对"某V皮"N服务器节点的一次后渗透测试
查看>>