solr 4.6.0とtomcat7でsolr suggesterを作成しようとしています。 suggesterは、solr(suName、suFea)およびファイルベースの辞書(suList)から複数のフィールドを使用する必要があります。複数のフィールドの提案が機能しています。しかし、フィールドとファイル辞書の組み合わせは、アナライザーがすべての辞書から同じタイプを必要とするため、機能しません。私は、複数のコンポーネントでこの問題を解決しようとしました。その結果、NULLポインタが返されました。Solr Autocomplete:フィールドとファイルの辞書を持つ複数の辞書
このような状況を構築するオプションはありますか?
ありがとうございました。
solrconfig.xml:
<searchComponent name="suggest" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">suFea</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
<str name="suggestAnalyzerFieldType">lowercase</str>
<str name="field">features</str>
<str name="buildOnCommit">true</str>
</lst>
<lst name="spellchecker">
<str name="name">suName</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
<str name="suggestAnalyzerFieldType">lowercase</str>
<str name="field">name</str>
<!--<float name="threshold">0.005</float>-->
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<searchComponent name="fileSuggest" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">suList</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
<str name="suggestAnalyzerFieldType">lowercase</str>
<str name="sourceLocation">./suggester/dict.txt</str>
<str name="fieldType">string</str>
<!--<float name="threshold">0.005</float>-->
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suName</str>
<str name="spellcheck.dictionary">suFea</str>
<str name="spellcheck.dictionary">suList</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.collate">false</str>
<str name="spellcheck.count">25</str>
</lst>
<arr name="components" >
<str>suggest</str>
<str>fileSuggest</str>
</arr>
</requestHandler>
がエラー:
java.lang.NullPointerException at org.apache.solr.spelling.ConjunctionSolrSpellChecker.addChecker(ConjunctionSolrSpellChecker.java:58) at
org.apache.solr.handler.component.SpellCheckComponent.getSpellChecker(SpellCheckComponent.java:505) at
org.apache.solr.handler.component.SpellCheckComponent.prepare(SpellCheckComponent.java:123) at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:187) at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1859) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:710) at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:413) at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:197) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)