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

标签 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" />

最佳答案

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

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

此外,如果你真的需要使用 maxCollationTries ,您可以将其作为查询参数输入到您的 url 中。

关于solr - 拼写检查导致 Core Reload 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791031/

相关文章:

solr - Solr文档带有子元素?

java - Solr dismax 突出显示不尊重分析器

search - 如何仅在 MultiValueField 不为空的情况下从 Solr 中进行选择?

elasticsearch - 重复的ElasticSearch文档

web-applications - 通过 HTTP 访问嵌入式 Solr 实例

java - Solr/Lucene : Is it possible to overload a method in a Custom Similarity Class?

indexing - Lucene多语言分析器/索引方法

python - 问 : Python Spell Checker using NLTK

javascript - 谷歌拼写检查 URI 不工作

user-interface - Flyspell 正确单词的用户交互改进