solr - 拼写检查导致Core Reload挂起

时间:2013-09-13 16:27:29

标签: solr lucene spell-checking

我遇到过solr设置问题。

经过今天的大量调查后,我发现它的拼写检查组件导致Core Reload问题挂起。

如果关闭,一切都会运行良好,核心可以轻松重新加载。但是,当拼写检查打开时,核心不会重新加载而是永远挂起。然后让项目恢复活力的唯一方法是停止solr,然后删除数据文件夹,然后再次启动solr。

以下是拼写检查的solr配置设置:

<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
       <!-- Spell checking defaults -->
       <str name="spellcheck.dictionary">default</str>
       <str name="spellcheck">on</str>
       <str name="spellcheck.count">5</str>
       <str name="spellcheck.onlyMorePopular">false</str>
       <str name="spellcheck.maxResultsForSuggest">5</str>
       <str name="spellcheck.alternativeTermCount">2</str>
       <str name="spellcheck.extendedResults">false</str>

       <str name="spellcheck.collate">true</str>
       <str name="spellcheck.maxCollations">3</str>
       <str name="spellcheck.maxCollationTries">3</str>
       <str name="spellcheck.collateExtendedResults">true</str>
</lst>

     <arr name="last-components">
       <str>spellcheck</str>
     </arr>
</requestHandler>


<searchComponent name="spellcheck" class="solr.SpellCheckComponent">

    <str name="queryAnalyzerFieldType">text_en_splitting</str>

    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">location_details</str>
      <str name="classname">solr.DirectSolrSpellChecker</str>
      <str name="buildOnCommit">true</str>
      <float name="accuracy">0.5</float>
      <float name="thresholdTokenFrequency">.01</float>
      <int name="maxEdits">1</int>
      <int name="minPrefix">3</int>
      <int name="maxInspections">3</int>
      <int name="minQueryLength">4</int>
      <float name="maxQueryFrequency">0.001</float>
    </lst>    

  </searchComponent>

以下是架构中的字段:

<field name="location_details" type="text_en_splitting" indexed="true" stored="false" required="false" />

1 个答案:

答案 0 :(得分:7)

基本上,这是Solr中的一个错误。您需要隐藏/评论/删除requestHandler中的以下内容:

<!--<str name="spellcheck.maxCollationTries">3</str> here is a bug, put this parameter in the actual query string instead -->

此外,如果您确实需要使用maxCollationTries,则可以在网址中将其作为查询参数输入。