我已經閱讀以下內容:SOLR性能調優
http://wiki.apache.org/solr/SolrPerformanceFactors
http://wiki.apache.org/solr/SolrCaching
http://www.lucidimagination.com/content/scaling-lucene-and-solr
而且我有幾件事情的問題:
- 如果我使用JVM選項
-XX:+UseCompressedStrings
是什麼樣的可以節省內存嗎?舉個簡單的例子,如果我有1個索引字段(字符串)和1個存儲字段(字符串),其中omitNorms = true和omitTf = true,我可以期望索引和文檔緩存有哪些節省?我猜測大概有50%,但也許這太樂觀了。 - 什麼時候Solr過濾器緩存在做什麼?如果我只是用AND和一些OR來做一個簡單的查詢,然後按分數排序,我是否還需要它?
- 如果我想緩存文檔緩存中的所有文檔,我將如何計算所需的空間?使用上面的例子,如果我有20M文檔,使用壓縮字符串,並且存儲字段的平均長度爲25個字符,基本上是需要的空間(25字節+ small_admin_overhead)* 20M?
- 如果所有文檔都在文檔緩存中,查詢緩存的重要性如何?
- 如果我想將每個文檔自動控制到doc緩存中,會自動使用
*:*
查詢嗎? - 縮放-lucene-and-solr文章說FuzzyQuery速度很慢。如果我使用solr的拼寫檢查功能,那麼我基本上使用模糊查詢權限(因爲拼寫檢查執行相同的編輯距離計算)?所以大概拼寫檢查和模糊查詢都同樣「慢」?
- 描述字符串的lucene字段緩存的部分有點令人困惑。我是否正確閱讀它,所需的空間基本上是索引字符串字段的大小+整數arry等於該字段中唯一項的數量?
- 最後,在最大化吞吐量的情況下,有一條關於爲操作系統磁盤高速緩存留出足夠空間的聲明。它說:「總而言之,對於大規模的索引,最好確保至少有幾GB的RAM超出了你給JVM的範圍。」所以如果我有一個12GB的內存機器(例如),我應該給操作系統至少2-3GB?我可以通過查看磁盤索引大小來估計操作系統所需的磁盤緩存空間嗎?
爲何選票關閉? – Kevin 2011-12-25 01:15:37
兩個答案都很好,所以我選擇了第一個正確的答案。感謝您的回覆。 – Kevin 2011-12-28 05:56:25