頻繁搜索的索引保存在內(nèi)存中,因為重建索引和幫助進行高效搜索需要時間。另一方面,可能有我們很少訪問的索引。這些索引不需要占用內(nèi)存,可以在需要時重新構(gòu)建。這類指數(shù)被稱為凍結(jié)索引。
每當搜索分片時,Elasticsearch都會構(gòu)建凍結(jié)索引的每個分片的瞬態(tài)數(shù)據(jù)結(jié)構(gòu),并在搜索完成后立即丟棄這些數(shù)據(jù)結(jié)構(gòu)。由于Elasticsearch不會在內(nèi)存中維護這些臨時數(shù)據(jù)結(jié)構(gòu),因此凍結(jié)索引消耗的堆要比普通索引少得多。與其他方式相比,這允許更高的磁盤與堆的比率。
以下示例凍結(jié)和解凍索引-
POST /index_name/_freeze POST /index_name/_unfreeze
預期對凍結(jié)索引的搜索將緩慢執(zhí)行。凍結(jié)索引不適用于較高的搜索負載。即使對未凍結(jié)的索引進行的搜索在幾毫秒內(nèi)完成,對凍結(jié)索引的搜索也可能需要數(shù)秒或數(shù)分鐘才能完成。
每個節(jié)點的并發(fā)加載的凍結(jié)索引數(shù)受search_throttled線程池中的線程數(shù)限制,默認情況下為1。要包含凍結(jié)索引,必須使用查詢參數(shù)? ignore_throttled = false來執(zhí)行搜索請求。
GET /index_name/_search?q=user:tpoint&ignore_throttled=false
凍結(jié)索引是使用搜索限制和內(nèi)存有效分片實現(xiàn)的普通索引。
GET /_cat/indices/index_name?v&h=i,sth