节点查询缓存设置编辑

在过滤器上下文中使用的查询结果会缓存在节点查询缓存中,以便快速查找。每个节点都有一个查询缓存,由所有分片共享。缓存使用 LRU 驱逐策略:当缓存已满时,最少最近使用的查询结果会被驱逐,为新数据腾出空间。您无法检查查询缓存的内容。

术语查询和在过滤器上下文之外使用的查询不符合缓存条件。

默认情况下,缓存最多可容纳 10000 个查询,占总堆空间的 10%。为了确定查询是否符合缓存条件,Elasticsearch 会维护一个查询历史记录以跟踪查询的出现次数。

如果一个分段包含至少 10000 个文档,并且该分段至少包含分片总文档的 3%,则缓存将在每个分段的基础上进行。由于缓存是按分段进行的,因此合并分段可能会使缓存的查询失效。

以下设置是 *静态* 的,必须在集群中的每个数据节点上配置

indices.queries.cache.size
(静态) 控制过滤器缓存的内存大小。接受百分比值,例如 5%,或精确值,例如 512mb。默认值为 10%

查询缓存索引设置编辑

以下设置是 *索引* 设置,可以在每个索引的基础上进行配置。只能在索引创建时或在 关闭的索引 上设置

index.queries.cache.enabled
(静态) 控制是否启用查询缓存。接受 true(默认)或 false