建设网站的规划书,邢台市住房和城乡建设局网站,口碑营销是什么,重庆建设工程造价协会目录一、近实时搜索的概述1.1、按段#xff08;per-segment#xff09;搜索1.2、更轻量的方式搜索二、为什么Elasticsearch是 近 实时搜索三、如何解决索引了一个文档然后却没有搜到四、哪种情况不需要每秒刷新4.1、使用 Elasticsearch 索引大量的日志文件4.2、使用 Elastics…
目录一、近实时搜索的概述1.1、按段per-segment搜索1.2、更轻量的方式搜索二、为什么Elasticsearch是 近 实时搜索三、如何解决索引了一个文档然后却没有搜到四、哪种情况不需要每秒刷新4.1、使用 Elasticsearch 索引大量的日志文件4.2、使用 Elasticsearch建立一个大的新索引时一、近实时搜索的概述
1.1、按段per-segment搜索
随着按段per-segment搜索的发展一个新的文档从索引到可被搜索在几分钟之内即可被检索但这样还是不够快。因为磁盘成为了瓶颈。提交Commiting一个新的段到磁盘需要一个 fsync 来确保段被物理性地写入磁盘在断电的时候就不会丢失数据。 但是 fsync 操作代价很大; 如果每次索引一个文档都去执行一次的话会造成很大的性能问题。
1.2、更轻量的方式搜索 在 Elasticsearch 和磁盘之间是文件系统缓存新段会被先写入到文件系统缓存稍后再被刷新到磁盘。 不过只要文件已经在缓存中就可以像其它文件一样被打开和读取了。使其包含的文档在未进行一次完整提交时便对搜索可见并且在不影响性能的前提下可以被频繁地执行。
二、为什么Elasticsearch是 近 实时搜索
在 Elasticsearch 中写入和打开一个新段的轻量的过程叫做 refresh 。 默认情况下每个分片会每秒自动刷新一次。文档的变化并不是立即对搜索可见但会在一秒之内变为可见。
三、如何解决索引了一个文档然后却没有搜到
使用 refresh API 执行一次手动刷新: /users/_refresh。尽管刷新是比提交轻量很多的操作它还是会有性能开销。当写测试的时候 手动刷新很有用但是不要在生产环境下每次索引一个文档都去手动刷新。
四、哪种情况不需要每秒刷新
4.1、使用 Elasticsearch 索引大量的日志文件 可能只想优化索引速度而不是近实时搜索 可以通过设置 refresh_interval 降低每个索引的刷新频率。 {settings: {refresh_interval: 30s}
}4.2、使用 Elasticsearch建立一个大的新索引时 refresh_interval 可以在既存索引上进行动态更新。 在生产环境中当你正在建立一个大的新索引时可以先关闭自动刷新。 # 关闭自动刷新
PUT /users/_settings
{ refresh_interval: -1
}然后待开始使用该索引时再设置自动刷新。 # 每一秒刷新
PUT /users/_settings
{ refresh_interval: 1s
}