緩存在 Solr 中充當(dāng)了一個(gè)非常重要的角色,Solr 中主要有這三種緩存:
- Filter cache(過濾器緩存),用于保存過濾器(fq 參數(shù))和層面搜索的結(jié)果
- Document cache(文檔緩存),用于保存 lucene 文檔存儲(chǔ)的字段
- Query result(查詢緩存),用于保存查詢的結(jié)果
通過這 3 種緩存,可以對(duì) solr 的搜索實(shí)例進(jìn)行調(diào)優(yōu)。調(diào)整這些緩存,需要根據(jù)索引庫中文檔的數(shù)量,每次查詢結(jié)果的條數(shù)等。
在調(diào)整參數(shù)前,需要事先得到 solr 示例中的以下信息:
- 索引中文檔的數(shù)量
- 每秒鐘搜索的次數(shù)
- 過濾器的數(shù)量
- 一次查詢返回最大的文檔數(shù)量
- 不同查詢和不同排序的個(gè)數(shù)
- 索引中文檔的數(shù)量:1000000
- 每秒鐘搜索的次數(shù):100
- 過濾器的數(shù)量:200
- 一次查詢返回最大的文檔數(shù)量:100
- 不同查詢和不同排序的個(gè)數(shù):500
<filterCache class="solr.FastLRUCache" size="200" initialSize="200" autowarmCount="100"/>
第二個(gè)是查詢結(jié)果緩存:
<queryResultCache class="solr.FastLRUCache" size="500" initialSize="500" autowarmCount="250"/>
第三個(gè)是文檔緩存:
<documentCache class="solr.FastLRUCache" size="11000" initialSize="11000" />
這幾個(gè)配置是基于以上的幾個(gè)假設(shè)的值進(jìn)行調(diào)優(yōu)的。
http://insolr.com/forum.php?mod=viewthread&tid=7&reltid=880&pre_thread_id=19&pre_pos=5&ext=