現在、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) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83) at 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) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at org.mortbay.jetty.handler.HandlerCollection.org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161) の doStart(HandlerCollection.java:147) 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) at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929) sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で、sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) で、sun.reflect で。DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.mortbay.start.Main.invokeMain(Main.java:183) 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.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:615) で java.lang.ClassLoader.loadClass(ClassLoader.java:266) で 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:// を搭載