Elasticsearch 冻结索引

经常搜索的索引保存在内存中,因为重建它们需要时间并有助于高效搜索。 另一方面,可能有一些我们很少访问的索引。 这些索引不需要占用内存,可以在需要时重新构建。 此类索引称为冻结索引。

每次搜索分片时,Elasticsearch 都会为冻结索引的每个分片构建临时数据结构,并在搜索完成后立即丢弃这些数据结构。 因为 Elasticsearch 不在内存中维护这些临时数据结构,所以冻结索引比普通索引消耗更少的堆。 与其他方式相比,这允许更高的磁盘堆比。

冻结和解除冻结示例

以下示例冻结和解除冻结索引

POST /index_name/_freeze
POST /index_name/_unfreeze

对冻结索引的搜索预计执行缓慢。 冻结索引不适用于高搜索负载。 冻结索引的搜索可能需要几秒或几分钟才能完成,即使在索引未冻结时相同的搜索在几毫秒内完成也是如此。

搜索冻结索引

每个节点并发加载的冻结索引数受 search_throttled 线程池中线程数的限制,默认为 1。 要包含冻结索引,必须使用查询参数执行搜索请求 - ignore_throttled=false

GET /index_name/_search?q=user:tpoint&ignore_throttled=false

监控冻结索引

冻结索引是使用搜索限制和内存高效分片实现的普通索引。

GET /_cat/indices/index_name?v&h=i,sth

查看笔记

扫码一下
查看教程更方便