对于filter
查询,ElasticSearch
提供了缓存查询结果的特性,当缓存中存在满足查询条件要求的数据时,直接从缓存中提取查询结果。
对于ElasticSearch
节点,该节点上的所有shard
共享同一个缓存区域。
ElasticSearch
基于LRU算法来管理缓存中的数据,当空间不足以承载最新的查询操作的结果时,使用LRU算法来剔除掉历史数据,从而保留存储空间用于缓存近期的查询操作的结果数据。
当前ElasticSearch
没有提供方法来查看缓存中保留的查询结果。
默认情况下,缓存中保留至多10000
个查询操作的结果,占用至多ElasticSearch
节点JVM堆内存的10%
。
合并segment
的操作,将导致缓存失效。
indices.queries.cache.size
默认值为10%
。
允许使用百分比,比如5%
,或者绝对数值,比如512mb
。
修改配置文件elasticsearch.yml
,增加如下配置:
indices.queries.cache.size: 5%
或者
indices.queries.cache.size: 512mb
index.queries.cache.enabled
默认值为true
。
控制是否启用缓存特性,true
即开启,false
即关闭。
只允许在创建索引时指定,或者关闭索引后指定。
命令样例如下:
curl -X PUT "https://localhost:9200/testindex_004?pretty" -H 'Content-Type: application/json' -d'
{
"settings": {
"index.number_of_shards": 1,
"index.number_of_replicas": 1,
"index.queries.cache.enabled": false
}
}
' --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
执行结果的样例,如下:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "testindex_004"
}
相关资料
标签:Node,缓存,settings,cache,查询,ElasticSearch,queries,query From: https://www.cnblogs.com/jackieathome/p/17895852.html