Solr 3.2のリリース以降、SolrへのCarrotの統合は改善されたと言われていますが、私にとっては異なることがわかりました。私はまったく同じ構成のSolr1.4.1サーバーを実行していましたが、Carrotはうまく機能しており、Solr3.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以外のものを構成する必要がありますか?
助けてくれてありがとう。