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