跳到主要内容

节点查询缓存设置

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

词条查询以及在过滤上下文之外使用的查询不符合缓存条件。

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

缓存以段为基础进行,前提是段至少包含 10000 个文档,并且该段至少占一个分片总文档数的 3%。由于缓存是按段进行的,合并段会使缓存的查询失效。

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

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

查询缓存索引设置​

以下设置是可以在每个索引上配置的索引设置。只能在创建索引时或在已关闭的索引上设置:

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

原文链接