我们目前正在使用 sunspot 1.3.3 gem。我们在 solrConfig.xml 中使用 JaroWinklerDistance 配置了 solr 拼写检查器组件,如下所示。但是,它会导致 ClassNotFoundException。我们如何处理这个?是否有一些我们需要复制 jar 文件的特定目录?如何配置通过太阳黑子管理的 jetty/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 在配置错误后继续,请更改:
错误的
在空
-------------------------------------------------- ----------- org.apache.solr.common.SolrException:在 org.apache.solr.core.SolrResourceLoader.findClass 加载类“org.apache.lucene.search.spell.JaroWinklerDistance”时出错( 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) 在 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) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 在 org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect。DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at 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) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:205) 在 java.lang.ClassLoader.loadClass( ClassLoader.java:321) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:266) 在 java.lang.Class 的 java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:615)。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 /
由码头提供支持://