我们目前正在使用太阳黑子1.3.3宝石。我们在solrConfig.xml中使用JaroWinklerDistance配置了solr spellchecker组件,如下所示。但是,它会导致ClassNotFoundException。我们该如何处理?是否有一些我们需要复制jar文件的特定目录?如何配置通过太阳黑子管理的码头/ solr?
<lst name="spellchecker"> <str name="name">jarowinkler</str> <str name="field">spell</str> <str name="distanceMeasure"> org.apache.lucene.search.spell.JaroWinklerDistance </str> <str name="spellcheckIndexDir">./spellchecker</str> </lst>
我们已经尝试将lucene-spellchecker **。jar放在rails_app_root / solr / lib下,但它不起作用。
由于
异常堆栈跟踪
HTTP错误:500
solr配置中的严重错误。
检查日志文件以获取有关可能的更多详细信息 错。
如果您希望solr在配置错误后继续,请更改:
假
in null
----------------------------------------------- -------------- org.apache.solr.common.SolrException:加载类时出错 org.apache.lucene.search.spell.JaroWinklerDistance 'at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:373) 在 org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:388) 在 org.apache.solr.spelling.AbstractLuceneSpellChecker.init(AbstractLuceneSpellChecker.java:95) 在 org.apache.solr.spelling.IndexBasedSpellChecker.init(IndexBasedSpellChecker.java:56) 在 org.apache.solr.handler.component.SpellCheckComponent.inform(SpellCheckComponent.java:274) 在 org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:486) 在org.apache.solr.core.SolrCore。(SolrCore.java:588)at at org.apache.solr.core.CoreContainer $ Initializer.initialize(CoreContainer.java:137) 在 org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83) 在 org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在 org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:594) 在org.mortbay.jetty.servlet.Context.startContext(Context.java:139) 在 org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) 在 org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在 org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147) 在 org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在 org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) 在org.mortbay.jetty.Server.doStart(Server.java:210)at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:616)at org.mortbay.start.Main.invokeMain(Main.java:183)at org.mortbay.start.Main.start(Main.java:497)at org.mortbay.start.Main.main(Main.java:115)引起: 抛出java.lang.ClassNotFoundException: org.apache.lucene.search.spell.JaroWinklerDistance at java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)at java.security.AccessController.doPrivileged(Native Method)at at java.net.URLClassLoader.findClass(URLClassLoader.java:205)at java.lang.ClassLoader.loadClass(ClassLoader.java:321)at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:615)at at java.lang.ClassLoader.loadClass(ClassLoader.java:266)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:357) ... 32更多RequestURI = / solr / admin /
由Jetty提供://
答案 0 :(得分:5)
该课程应包含在以下其中一个罐子中: -
因此,当solr启动并加载外部jar时,您可以确认jar是否包含在类路径中 如果您在Jetty中执行它,您可以更新SolrConfig.xml中的lib指令以查看库所在的库。
您还可以查看此Interesting thread。
将它放在一行: -
<str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>