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