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