节点查询缓存设置
自我管理型
在过滤上下文中使用的查询结果缓存在节点查询缓存中,以实现快速查找。每个节点有一个查询缓存,所有分片共享该缓存。该缓存使用 LRU 逐出策略:当缓存满时,最近最少使用的查询结果会被逐出,为新数据腾出空间。您无法检查查询缓存的内容。
词项查询和在过滤上下文之外使用的查询不符合缓存条件。
默认情况下,缓存最多容纳 10000 个查询,最多占用总堆空间的 10%。为了确定查询是否符合缓存条件,Elasticsearch 会维护一个查询历史记录来跟踪出现次数。
如果某个段包含至少 10000 个文档,并且该段占分片总文档数的至少 3%,则按段进行缓存。由于是按段进行缓存,因此合并段可能会使缓存的查询失效。
以下设置是静态的,必须在集群中的每个数据节点上配置
indices.queries.cache.size
- (静态) 控制过滤缓存的内存大小。接受百分比值,例如
5%
,或精确值,例如512mb
。默认为10%
。
以下设置是索引设置,可以按索引进行配置。只能在索引创建时或在关闭的索引上设置
index.queries.cache.enabled
-
(静态) 控制是否启用查询缓存。接受
true
(默认)或false
。