2011-08-25 74 views
1

我正在研究如何在Solr中實現高性能標籤雲。高性能Solr標籤雲

我有一個Solr數據庫,每天有1500萬條記錄和更多的記錄。我有一個數據複製語句將數據複製到的字段。它可以有1到6個值之間的任何值。這些值通常是一個或兩個(字符串數據)。我試圖創建一個自定義字段類型來優化&將字段標記爲快速刻面,但是我的表現並不理想。

這是我創建的自定義字段。

<fieldType name="KeywordCloud" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" 
      ignoreCase="true" 
      words="stopwords.txt" 
      enablePositionIncrements="true" 
      /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" 
      ignoreCase="true" 
      words="stopwords.txt" 
      enablePositionIncrements="true" 
      /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

上刻面這一領域時,我如何能實現至少合理的性能有什麼建議?或者我可以採取完全不同的方法?

當我只有一百萬份文檔的索引,但是有一千五百萬份以上的文檔給我提出問題時,這種方法非常有用。

在此先感謝!

回答

0

你玩過solr緩存嗎?隨着字段特有術語數量的增加,您需要相應地增加緩存。有關詳細信息,請參見this link。注意過濾器緩存和字段緩存。

+0

感謝您的支持!有沒有我可以遵循的明確建議?如果我可以運用一些數學來確定最佳配置,那將會很棒。 –

+0

不是真正的數學計算,但是您可以在索引索引請求時查看緩存統計信息(從Solr管理控制檯查找「Statistics」>「Cache」鏈接)。如果您看到很多驅逐,您的緩存大小可能太低。但不要太高,否則這可能會傷害您的系統。 –