【问题标题】:solr - spellcheck causing Core Reload to hangsolr - 拼写检查导致 Core Reload 挂起
【发布时间】:2013-09-18 10:04:26
【问题描述】:

我遇到了 solr 设置的问题。

今天经过大量调查,我发现它的拼写检查组件导致核心重新加载问题挂起。

如果它关闭,一切都将运行良好,核心可以轻松重新加载。但是,当拼写检查打开时,核心不会重新加载而是永远挂起。那么让项目恢复活力的唯一方法是停止 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" />

【问题讨论】:

  • 我也有同样的问题。你找到解决方案了吗?
  • 实际上,我做到了:) 让我将其发布为答案

标签: solr lucene spell-checking


【解决方案1】:

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

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

另外,如果你真的需要使用maxCollationTries,你可以在你的url中作为Query参数输入。

【讨论】:

  • 在预热查询中禁用拼写检查 ( false ) 也可以解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 2011-03-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多