2011-08-25 75 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”链接)。如果您看到很多驱逐,您的缓存大小可能太低。但不要太高,否则这可能会伤害您的系统。 –