Lucene 5.1: I am (also) facing "java.lang.IllegalStateException: suggester was not built"
At the very moment no new documents seem tob e added to the index/core. Will a reboot "sanitize" the index/core? I (still) have <str> name="buildOnCommit">true</str> How can I tell Solr to peridoically update the suggestions? If not possible per configuration (in solrconfig.xml), what ist he preferred approach through SolrJ? Thx Clemens -----Ursprüngliche Nachricht----- Von: Michael Sokolov [mailto:msoko...@safaribooksonline.com] Gesendet: Donnerstag, 15. Januar 2015 19:52 An: solr-user@lucene.apache.org Betreff: Re: Occasionally getting error in solr suggester component. That sounds like a good approach to me. Of course it depends how often you commit, and what your tolerance is for delay in having suggestions appear, but it sounds as if you have a good understanding of the tradeoffs there. -Mike On 1/15/15 10:31 AM, Dhanesh Radhakrishnan wrote: > Hi, > From Solr 4.7 onwards, the implementation of this Suggester is > changed. The old SpellChecker based search component is replaced with > a new suggester that utilizes Lucene suggester module. The latest Solr > download is preconfigured with this new suggester I;m using Solr 4.10 > and suggestion are based on query /suggest instead of /spell. > So what I did is that in changed to <str > name="buildOnCommit">false</str> Its not good that each time rebuild > the index on commit , however, I would like to build the index on > certain time period, say 1 hour. > The lookup data will be built only when requested by URL parameter > suggest.build=true > > "http://localhost:8983/solr/ha/suggest?suggest.build=true" > > So this will rebuild the index again and the changes will reflect in > the suggester. > > There are certain pros and cons for this. > Issue is that the change will reflect only on certain time interval, > here 1 hour. Advantage is that we can avoid the rebuilt index on > every commit or optimize. > > Is this the right way ?? or any that I missed ??? > > Regards > dhanesh s.r > > > > > On Thu, Jan 15, 2015 at 3:20 AM, Michael Sokolov < > msoko...@safaribooksonline.com> wrote: > >> did you build the spellcheck index using spellcheck.build as >> described >> here: https://cwiki.apache.org/confluence/display/solr/Spell+Checking ? >> >> -Mike >> >> >> On 01/14/2015 07:19 AM, Dhanesh Radhakrishnan wrote: >> >>> Hi, >>> Thanks for the reply. >>> As you mentioned in the previous mail I changed buildOnCommit=false >>> in solrConfig. >>> After that change, suggestions are not working. >>> In Solr 4.7 introduced a new approach based on a dedicated >>> SuggestComponent I'm using that component to build suggestions and >>> lookup implementation is "AnalyzingInfixLookupFactory" >>> Is there any work around ?? >>> >>> >>> >>> >>> On Wed, Jan 14, 2015 at 12:47 AM, Michael Sokolov < >>> msoko...@safaribooksonline.com> wrote: >>> >>> I think you are probably getting bitten by one of the issues >>> addressed in >>>> LUCENE-5889 >>>> >>>> I would recommend against using buildOnCommit=true - with a large >>>> index this can be a performance-killer. Instead, build the index >>>> yourself using the Solr spellchecker support >>>> (spellcheck.build=true) >>>> >>>> -Mike >>>> >>>> >>>> On 01/13/2015 10:41 AM, Dhanesh Radhakrishnan wrote: >>>> >>>> Hi all, >>>>> I am experiencing a problem in Solr SuggestComponent Occasionally >>>>> solr suggester component throws an error like >>>>> >>>>> Solr failed: >>>>> {"responseHeader":{"status":500,"QTime":1},"error":{"msg":"suggest >>>>> er >>>>> was >>>>> not built","trace":"java.lang.IllegalStateException: suggester was >>>>> not built\n\tat >>>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester. >>>>> lookup(AnalyzingInfixSuggester.java:368)\n\tat >>>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester. >>>>> lookup(AnalyzingInfixSuggester.java:342)\n\tat >>>>> org.apache.lucene.search.suggest.Lookup.lookup(Lookup.java:240)\n\ >>>>> tat org.apache.solr.spelling.suggest.SolrSuggester. >>>>> getSuggestions(SolrSuggester.java:199)\n\tat >>>>> org.apache.solr.handler.component.SuggestComponent. >>>>> process(SuggestComponent.java:234)\n\tat >>>>> org.apache.solr.handler.component.SearchHandler.handleRequestBody( >>>>> SearchHandler.java:218)\n\tat >>>>> org.apache.solr.handler.RequestHandlerBase.handleRequest( >>>>> RequestHandlerBase.java:135)\n\tat >>>>> org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper. >>>>> handleRequest(RequestHandlers.java:246)\n\tat >>>>> org.apache.solr.core.SolrCore.execute(SolrCore.java:1967)\n\tat >>>>> org.apache.solr.servlet.SolrDispatchFilter.execute( >>>>> SolrDispatchFilter.java:777)\n\tat >>>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter( >>>>> SolrDispatchFilter.java:418)\n\tat >>>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter( >>>>> SolrDispatchFilter.java:207)\n\tat >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( >>>>> ApplicationFilterChain.java:243)\n\tat >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter( >>>>> ApplicationFilterChain.java:210)\n\tat >>>>> org.apache.catalina.core.StandardWrapperValve.invoke( >>>>> StandardWrapperValve.java:225)\n\tat >>>>> org.apache.catalina.core.StandardContextValve.invoke( >>>>> StandardContextValve.java:123)\n\tat >>>>> org.apache.catalina.core.StandardHostValve.invoke( >>>>> StandardHostValve.java:168)\n\tat >>>>> org.apache.catalina.valves.ErrorReportValve.invoke( >>>>> ErrorReportValve.java:98)\n\tat >>>>> org.apache.catalina.valves.AccessLogValve.invoke( >>>>> AccessLogValve.java:927)\n\tat >>>>> org.apache.catalina.valves.RemoteIpValve.invoke( >>>>> RemoteIpValve.java:680)\n\tat >>>>> org.apache.catalina.core.StandardEngineValve.invoke( >>>>> StandardEngineValve.java:118)\n\tat >>>>> org.apache.catalina.connector.CoyoteAdapter.service( >>>>> CoyoteAdapter.java:407)\n\tat >>>>> org.apache.coyote.http11.AbstractHttp11Processor.process( >>>>> AbstractHttp11Processor.java:1002)\n\tat >>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler. >>>>> process(AbstractProtocol.java:579)\n\tat >>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor. >>>>> run(JIoEndpoint.java:312)\n\tat >>>>> java.util.concurrent.ThreadPoolExecutor.runWorker( >>>>> ThreadPoolExecutor.java:1145)\n\tat >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run( >>>>> ThreadPoolExecutor.java:615)\n\tat >>>>> java.lang.Thread.run(Thread.java:745)\n","code":500}} >>>>> >>>>> This is not freequently happening, but idexing and suggestor >>>>> component working togethere this error will occur. >>>>> >>>>> >>>>> >>>>> >>>>> In solr config >>>>> >>>>> <searchComponent name="suggest" class="solr.SuggestComponent"> >>>>> <lst name="suggester"> >>>>> <str name="name">haSuggester</str> >>>>> <str name="lookupImpl">AnalyzingInfixLookupFactory</str> >>>>> <!-- >>>>> org.apache.solr.spelling.suggest.fst --> >>>>> <str name="suggestAnalyzerFieldType">textSpell</str> >>>>> <str name="dictionaryImpl">DocumentDictionaryFactory</str> >>>>> <!-- >>>>> org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory --> >>>>> <str name="field">name</str> >>>>> <str name="weightField">packageWeight</str> >>>>> <str name="buildOnCommit">true</str> >>>>> </lst> >>>>> </searchComponent> >>>>> >>>>> <requestHandler name="/suggest" class="solr.SearchHandler" >>>>> startup="lazy"> >>>>> <lst name="defaults"> >>>>> <str name="suggest">true</str> >>>>> <str name="suggest.count">10</str> >>>>> </lst> >>>>> <arr name="components"> >>>>> <str>suggest</str> >>>>> </arr> >>>>> </requestHandler> >>>>> >>>>> Can any one suggest where to look to figure out this error and why >>>>> these errors are occurring? >>>>> >>>>> >>>>> >>>>> Thanks, >>>>> dhanesh s.r >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> >>>>> >