solr 的建议者给出 "SolrException: Unknown Search Component: spellcheck at org.apache.solr.core.SolrCore"

标签 solr

我尝试使用 Solr 的 Suggester 组件,但它给出了异常 Unknown Search Component: spellcheck。我正在使用 3.6 版的 solr。我在 solrconfig.xml 中进行了更改,所以它看起来像这样

<searchComponent class="solr.SpellCheckComponent" name="suggester">
 <lst name="spellchecker">
      <str name="name">suggester</str>
      <str name="field">name</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
      <float name="threshold">0.005</float>
      <str name="buildOnCommit">true</str>
      <str name="spellcheckIndexDir">spellchecker</str>
 </lst> 
</searchComponent>

<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggester">
  <lst name="defaults">
  <str name="spellcheck">true</str>
  <str name="spellcheck.dictionary">suggester</str>
  <str name="spellcheck.count">10</str>
  </lst>
  <arr name="components">
  <str>suggester</str>
  </arr>
</requestHandler>

现在我保存了它并启动了 solr,但它给出了 500 错误。有一个很长的堆栈跟踪,就像这样

HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you want solr to continue after configuration errors, change: <abortOnConfigurationError>false</abortOnConfigurationError> in solr.xml ------------------------------------------------------------- org.apache.solr.common.SolrException: No cores were created, please check the logs for errors at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:172) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) at 

---很多行---

还有一些

Caused by: org.apache.solr.common.SolrException: Unknown Search Component: spellcheck at org.apache.solr.core.SolrCore.getSearchComponent(SolrCore.java:893) at org.apache.solr.handler.component.SearchHandler.inform(SearchHandler.java:118) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:527) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594) ... 32 more

根据堆栈跟踪,Solr 无法找到 spellcheck 组件,但根据 Solr wiki,该组件随 Solr 版本 > 1.4 一起提供。

最佳答案

您似乎已将搜索组件命名为 suggester,并且您的 requestHandler 正确引用了它,所以这可能不是问题所在。您能否检查 solrconfig.xml 的其余部分是否 some other requestHandler 在其 last-components 部分或其他地方引用名为 spellcheck 的组件?这会引发错误,因为它无法再找到具有该名称的组件(它已重命名为 suggester)。

solrconfig 的问题在于它带有许多预配置的搜索处理程序,如果您更改一项的默认名称,可能会导致引用它的处理程序出现问题。

关于solr 的建议者给出 "SolrException: Unknown Search Component: spellcheck at org.apache.solr.core.SolrCore",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572327/

相关文章:

python - 在 Django 中使用 HayStack + Solr 进行高级搜索?

solr - QueryResponse (SolrJ 5.0.0) 将 ClassCastException 从 String 返回到 NamedList for spellcheck.collat​​ion=true

search - Solr精确词搜索

solr - 如何在不知道停止键的情况下停止 jetty

SOLR:索引失败。回滚所有更改。

Solr HTTP Api - 响应状态

solr - 为什么我只能将 665 个结果中的 10 个文档读入 solr 中的 beans

java - 使用 Java 在 Solr 中以编程方式完全导入

java - Solr 4 - 索引发布的文本文件

mysql - Solr 应该用作只读数据库吗?