缓存在 Solr 中充当了一个非常重要的角色,Solr 中主要有这三种缓存:
- Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果
- Document cache(文档缓存),用于保存 lucene 文档存储的字段
- Query result(查询缓存),用于保存查询的结果
- 索引中文档的数量
- 每秒钟搜索的次数
- 过滤器的数量
- 一次查询返回最大的文档数量
- 不同查询和不同排序的个数
- 索引中文档的数量:1000000
- 每秒钟搜索的次数:100
- 过滤器的数量:200
- 一次查询返回最大的文档数量:100
- 不同查询和不同排序的个数:500
1
|
< filterCache class = "solr.FastLRUCache" size = "200" initialSize = "200" autowarmCount = "100" /> |
第二个是查询结果缓存:
1
|
< queryResultCache class = "solr.FastLRUCache" size = "500" initialSize = "500" autowarmCount = "250" /> |
第三个是文档缓存:
1
|
< documentCache class = "solr.FastLRUCache" size = "11000" initialSize = "11000" /> |
这几个配置是基于以上的几个假设的值进行调优的。
1
|
< enableLazyFieldLoading >true</ enableLazyFieldLoading > |