据说自 Solr 3.2 发布以来,Carrot 与 Solr 的集成得到了改进,但对我来说却有所不同。我有一个配置完全相同的 Solr 1.4.1 服务器正在运行,Carrot 运行良好,而 Solr 3.2 只给了我“其他主题”。这让我发疯,因为除了我没有例外或任何不寻常的事情。甚至结果 xml 看起来都一样......
不过我并没有对集群组件的标准配置做太多改动:
<searchComponent name="clustering"
enable="${solr.clustering.enabled:true}"
class="solr.clustering.ClusteringComponent" >
<lst name="engine">
<str name="name">default</str>
<str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
<!--custom-->
<str name="LingoClusteringAlgorithm.phraseLabelBoost">8.00</str>
<str name="TermDocumentMatrixBuilder.titleWordsBoost">6.00</str>
<str name="carrot.lexicalResourcesDir">clustering/carrot2</str>
<str name="MultilingualClustering.defaultLanguage">ENGLISH</str>
</lst>
<lst name="engine">
<str name="name">stc</str>
<str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
</lst>
</searchComponent>
<requestHandler name="/clustering"
startup="lazy"
enable="${solr.clustering.enabled:true}"
class="solr.SearchHandler">
<lst name="defaults">
<bool name="clustering">true</bool>
<str name="clustering.engine">default</str>
<bool name="clustering.results">true</bool>
<str name="carrot.title">autocomplete</str>
<str name="carrot.url">autocomplete</str>
<str name="carrot.snippet">autocomplete</str>
<bool name="carrot.outputSubClusters">true</bool>
<str name="defType">edismax</str>
<str name="qf">
text^0.5 autocomplete^1.2 ata^1.0 raum^1.0 system^1.0 assy^1.0 unit^1.0
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
<arr name="last-components">
<str>clustering</str>
</arr>
</requestHandler>
我最好的猜测是胡萝卜没有与 edismax 一起正常工作(在 Solr 1.4.1 中没有实现),但这可能会产生误导。
我已经重新索引了我的数据,以确保这不是问题。
在胡萝卜工作台中,聚类与 Lingo 作为算法运行良好。当我选择“按来源”时,我得到了 xml 中的“其他主题”。Lingo可能没有配置好?除了 solrconfig.xml 之外必须配置任何东西来解决这个问题吗?
我很感激任何帮助。