Solr 4.0如何更改拼写检查分析器以使它们完全相同?

时间:2012-12-07 10:26:28

标签: java solr

我刚刚从3.6.1升级到4.0 solr并且spelchecker停止了工作。我正在使用标准的配置/拼写请求处理程序来测试拼写检查。

我一直得到“所有检查员都需要使用相同的分析器”错误。 (https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java)

如何更改拼写检查分析器以使它们完全相同?

这是我正在使用的处理程序:

  <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <str name="df">text</str>
      <!-- Solr will use suggestions from both the 'default' spellchecker
           and from the 'wordbreak' spellchecker and combine them.
           collations (re-written queries) can include a combination of
           corrections from both spellcheckers -->
      <str name="spellcheck.dictionary">default</str>
      <str name="spellcheck.dictionary">wordbreak</str>
      <str name="spellcheck">on</str>
      <str name="spellcheck.extendedResults">true</str>       
      <str name="spellcheck.count">10</str>
      <str name="spellcheck.alternativeTermCount">5</str>
      <str name="spellcheck.maxResultsForSuggest">5</str>       
      <str name="spellcheck.collate">true</str>
      <str name="spellcheck.collateExtendedResults">true</str>  
      <str name="spellcheck.maxCollationTries">10</str>
      <str name="spellcheck.maxCollations">5</str>         
    </lst>
    <arr name="last-components">
      <str>spellcheck</str>
    </arr>
</requestHandler>

我知道这不是在生产中使用它的方法。

1 个答案:

答案 0 :(得分:9)

答案在于在solrconfig.xml中配置拼写检查“searchComponent”。在那里,每个拼写检查器条目应该具有“field”和/或“fieldType”属性的相同值。