SOLR緩存調優


緩存在 Solr 中充當了一個非常重要的角色,Solr 中主要有這三種緩存:

  • Filter cache(過濾器緩存),用於保存過濾器(fq 參數)和層面搜索的結果
  • Document cache(文檔緩存),用於保存 lucene 文檔存儲的字段
  • Query result(查詢緩存),用於保存查詢的結果
還有第四種緩存,lucene 內部的緩存,不過該緩存外部無法控制到。
通過這 3 種緩存,可以對 solr 的搜索實例進行調優。調整這些緩存,需要根據索引庫中文檔的數量,每次查詢結果的條數等。
在調整參數前,需要事先得到 solr 示例中的以下信息:
  • 索引中文檔的數量
  • 每秒鍾搜索的次數
  • 過濾器的數量
  • 一次查詢返回最大的文檔數量
  • 不同查詢和不同排序的個數
這些數量可以在 solr admin 頁面的日志模塊找到。假設以上的值分別為:
  • 索引中文檔的數量:1000000
  • 每秒鍾搜索的次數:100
  • 過濾器的數量:200
  • 一次查詢返回最大的文檔數量:100
  • 不同查詢和不同排序的個數:500
然后可以開始修改 solrconfig.xml 中緩存的配置了,第一個是過濾器緩存:
1
<filterCacheclass="solr.FastLRUCache"size="200"initialSize="200"  autowarmCount="100"/>

第二個是查詢結果緩存:

1
<queryResultCacheclass="solr.FastLRUCache"size="500"initialSize="500"autowarmCount="250"/>

第三個是文檔緩存:

1
<documentCacheclass="solr.FastLRUCache"size="11000"initialSize="11000"/>

這幾個配置是基於以上的幾個假設的值進行調優的。


如果這個參數設置為 true,不是直接請求的字段將會被延遲加載。這個可以提高性能,在查詢只是查小數據量字段時,那些大內容字段將會延遲加載。

1
<enableLazyFieldLoading>true</enableLazyFieldLoading>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM