1

Javaは初めてですが、solrを「全文検索」エンジンとして使用する必要があります...インストールして正常に実行できましたが、「suggesterコンポーネント」を使用する必要があります

ここに私の提案者の設定があります:

<searchComponent name="suggester" class="solr.SpellCheckComponent">
        <lst name="spellchecker" >
            <str name="name">suggester</str>
            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str>
            <str name="field">name</str>
            <!-- <str name="threshold">2</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="component" >
            <str>suggester</str>
        </arr>
    </requestHandler>

コマンド java -jar start.jar (このウェブサイトのように) で実行していますが、次のエラーが発生します。

INFO: Closing Searcher@1220b36 main
    fieldValueCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
    filterCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
    queryResultCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
    documentCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
Aug 9, 2012 5:14:32 PM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:600)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
    at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
    at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.mortbay.start.Main.invokeMain(Main.java:194)
    at org.mortbay.start.Main.start(Main.java:534)
    at org.mortbay.start.Main.start(Main.java:441)
    at org.mortbay.start.Main.main(Main.java:119)
Caused by: org.apache.solr.common.SolrException: Error loading class 'org.apache.solr.spelling.suggest.tst.TSTLookupFactory
'
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:394)
    at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:409)
    at org.apache.solr.spelling.suggest.Suggester.init(Suggester.java:100)
    at org.apache.solr.handler.component.SpellCheckComponent.inform(SpellCheckComponent.java:598)
    at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:527)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
    ... 30 more
Caused by: java.lang.ClassNotFoundException: org.apache.solr.spelling.suggest.tst.TSTLookupFactory

    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    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 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:378)
    ... 35 more

クラスを調べたところ、 $SOLR_HOME/dist/apache-solr-core-[solr version].jar にあったので、コマンドでSolrを実行してみました

java -cp $SOLR_HOME/dist/apache-solr-core-3.6.1 -jar start.jar

しかし、私は同じエラーが発生しました

4

2 に答える 2

2

Suggester を使用するために何もカスタマイズする必要はなく、Solr に既に含まれているクラスを見つける必要もありません。新しくダウンロードしたSolr 3.6.1から始めます(または、行った変更を元に戻します)。問題は構成にあり、クラスの名前と xml 要素の末尾の間に改行が含まれています</str>。そのため、SOLr はそのクラスを見つけることができません。改行を削除するだけで、すべてが機能します。

于 2012-08-10T09:04:36.230 に答える
0

TSTLookupFactorysolr-core jar に存在する必要があります (少なくともバージョン 3.4.0 では)。WinRAR または RAR ファイルを開くことができるその他のユーティリティで jar ファイルを開いて手動で確認できます (他のバージョンを使用している場合)。瓶。そうでない場合は、古いバージョンの SOLR を使用している可能性があり、アップグレードする必要があります。

次に、solr-core jar が実際にクラスパス上にあることを確認します (lucene-spellchecker jar およびその他の solr/lucene jar と同様)。

于 2012-08-09T10:41:18.043 に答える