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":"suggester
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




--





Reply via email to