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
广告

© . All rights reserved.