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

Rah*_*san 5 lucene solr 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>
Run Code Online (Sandbox Code Playgroud)

.

这是架构中的字段:

<field name="location_details" type="text_en_splitting" indexed="true" stored="false" required="false" />
Run Code Online (Sandbox Code Playgroud)

Rah*_*san 7

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

<!--<str name="spellcheck.maxCollationTries">3</str> here is a bug, put this parameter in the actual query string instead -->
Run Code Online (Sandbox Code Playgroud)

此外,如果您确实需要使用maxCollationTries,则可以在URL中将其作为Query参数输入.

  • 在加温查询中禁用拼写检查(<str name ="spellcheck"> false </ str>)也可以解决问题. (2认同)