You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Lajos <la...@protulae.com> on 2014/02/28 17:36:30 UTC

StackOverflow ... the errors, not the site

All,

Just playing around with the SuggestComponent, trying to compare results 
with the old-style spell-check-based suggester. Tried this config 
against a string field:

   <requestHandler name="/suggest2" class="solr.SearchHandler">
      <lst name="defaults">
        <str name="wt">json</str>
        <str name="indent">true</str>
        <str name="suggest">true</str>
        <str name="suggest.count">10</str>
        <str name="suggest.dictionary">default</str>
      </lst>
      <arr name="components">
        <str>suggest2</str>
      </arr>
   </requestHandler>

   <searchComponent name="suggest2" class="solr.SuggestComponent">
         <lst name="suggester">
       <str name="name">default</str>
       <str name="lookupImpl">FuzzyLookupFactory</str>
       <str name="dictionaryImpl">DocumentDictionaryFactory</str>
       <str name="field">title</str>
       <str name="weightField">price</str>
       <str name="suggestAnalyzerFieldType">string</str>
     </lst>
   </searchComponent>

I hit this URL:

/suggest2?q=ab&suggest.build=true

and that works, but because "title" was as StrField, it wasn't quite 
what I wanted.

So I tried a TextField, "description". And I get this, with the same URL:

ERROR - 2014-02-28 17:29:49.618; org.apache.solr.common.SolrException; 
null:java.lang.RuntimeException: java.lang.StackOverflowError^M
         at 
org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:796)^M
         at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:448)^M
         at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:217)^M
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)^M
         at
...
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)^M
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)^M
         at java.lang.Thread.run(Thread.java:662)^M
Caused by: java.lang.StackOverflowError^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:244)^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:259)^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:259)^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:259)^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:259)^M
         at 
org.apache.lucene.util.automaton.SpecialOperations.getFiniteStrings(SpecialOperations.java:259)^M

etc etc


Any ideas??

Thanks,

Lajos



Re: StackOverflow ... the errors, not the site

Posted by Areek Zillur <ar...@gmail.com>.
Hi Lajos,

This can be due to the heavy query-time processing chain associated with
the TextField? You can also check out AnalyzingInfixLookupFactory, if the
suggestion entries are a bit long (this suggester will give matches, even
if the query matches a term in the middle of a suggestion entry.

Ideally, FuzzyLookupFactory will work best if the processing chains of the
Fields are light.

Thanks,

Areek


On Fri, Feb 28, 2014 at 11:36 AM, Lajos <la...@protulae.com> wrote:

> All,
>
> Just playing around with the SuggestComponent, trying to compare results
> with the old-style spell-check-based suggester. Tried this config against a
> string field:
>
>   <requestHandler name="/suggest2" class="solr.SearchHandler">
>      <lst name="defaults">
>        <str name="wt">json</str>
>        <str name="indent">true</str>
>        <str name="suggest">true</str>
>        <str name="suggest.count">10</str>
>        <str name="suggest.dictionary">default</str>
>      </lst>
>      <arr name="components">
>        <str>suggest2</str>
>      </arr>
>   </requestHandler>
>
>   <searchComponent name="suggest2" class="solr.SuggestComponent">
>         <lst name="suggester">
>       <str name="name">default</str>
>       <str name="lookupImpl">FuzzyLookupFactory</str>
>       <str name="dictionaryImpl">DocumentDictionaryFactory</str>
>       <str name="field">title</str>
>       <str name="weightField">price</str>
>       <str name="suggestAnalyzerFieldType">string</str>
>     </lst>
>   </searchComponent>
>
> I hit this URL:
>
> /suggest2?q=ab&suggest.build=true
>
> and that works, but because "title" was as StrField, it wasn't quite what
> I wanted.
>
> So I tried a TextField, "description". And I get this, with the same URL:
>
> ERROR - 2014-02-28 17:29:49.618; org.apache.solr.common.SolrException;
> null:java.lang.RuntimeException: java.lang.StackOverflowError^M
>         at org.apache.solr.servlet.SolrDispatchFilter.sendError(
> SolrDispatchFilter.java:796)^M
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
> SolrDispatchFilter.java:448)^M
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
> SolrDispatchFilter.java:217)^M
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:243)^M
>         at
> ...
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.
> java:895)^M
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:918)^M
>         at java.lang.Thread.run(Thread.java:662)^M
> Caused by: java.lang.StackOverflowError^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:244)^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:259)^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:259)^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:259)^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:259)^M
>         at org.apache.lucene.util.automaton.SpecialOperations.
> getFiniteStrings(SpecialOperations.java:259)^M
>
> etc etc
>
>
> Any ideas??
>
> Thanks,
>
> Lajos
>
>
>