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 Dan Davis <da...@gmail.com> on 2015/01/13 18:51:20 UTC

Improved suggester question

The suggester is not working for me with Solr 4.10.2

Can anyone shed light over why I might be getting the exception below when
I build the dictionary?

<response>
<lst name="responseHeader">
<int name="status">500</int>
<int name="QTime">26</int>
</lst>
<lst name="error">
<str name="msg">len must be <= 32767; got 35680</str>
<str name="trace">
java.lang.IllegalArgumentException: len must be <= 32767; got 35680 at
org.apache.lucene.util.OfflineSorter$ByteSequencesWriter.write(OfflineSorter.java:479)
at
org.apache.lucene.search.suggest.analyzing.AnalyzingSuggester.build(AnalyzingSuggester.java:493)
at org.apache.lucene.search.suggest.Lookup.build(Lookup.java:190) at
org.apache.solr.spelling.suggest.SolrSuggester.build(SolrSuggester.java:160)
at
org.apache.solr.handler.component.SuggestComponent.prepare(SuggestComponent.java:165)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:197)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at
org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:246)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1967) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
</str>
<int name="code">500</int>
</lst>
</response>

Thank you.

I've configured my suggester as follows:

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">mySuggester</str>
    <str name="lookupImpl">FuzzyLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">text</str>
    <str name="weightField">medsite_id</str>
    <str name="suggestAnalyzerFieldType">text_general</str>
    <str name="buildOnCommit">true</str>
    <str name="threshold">0.1</str>
  </lst>
</searchComponent>

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
  <lst name="defaults">
    <str name="suggest">on</str>
    <str name="suggest.dictionary">mySuggester</str>
    <str name="suggest.count">10</str>
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>

Re: Improved suggester question

Posted by Dinu Suman <su...@gmail.com>.
Maybe this is because of the "<" sign.
Encode it and try again.

<lst name="error">
<str name="msg">len must be &lt;= 32767; got 35680</str>
<str name="trace">

On Tue, Jan 13, 2015 at 7:51 PM, Dan Davis <da...@gmail.com> wrote:

> The suggester is not working for me with Solr 4.10.2
>
> Can anyone shed light over why I might be getting the exception below when
> I build the dictionary?
>
> <response>
> <lst name="responseHeader">
> <int name="status">500</int>
> <int name="QTime">26</int>
> </lst>
> <lst name="error">
> <str name="msg">len must be <= 32767; got 35680</str>
> <str name="trace">
> java.lang.IllegalArgumentException: len must be <= 32767; got 35680 at
>
> org.apache.lucene.util.OfflineSorter$ByteSequencesWriter.write(OfflineSorter.java:479)
> at
>
> org.apache.lucene.search.suggest.analyzing.AnalyzingSuggester.build(AnalyzingSuggester.java:493)
> at org.apache.lucene.search.suggest.Lookup.build(Lookup.java:190) at
>
> org.apache.solr.spelling.suggest.SolrSuggester.build(SolrSuggester.java:160)
> at
>
> org.apache.solr.handler.component.SuggestComponent.prepare(SuggestComponent.java:165)
> at
>
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:197)
> at
>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at
>
> org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:246)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1967) at
>
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
> at
>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at
>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
> at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> </str>
> <int name="code">500</int>
> </lst>
> </response>
>
> Thank you.
>
> I've configured my suggester as follows:
>
> <searchComponent name="suggest" class="solr.SuggestComponent">
>   <lst name="suggester">
>     <str name="name">mySuggester</str>
>     <str name="lookupImpl">FuzzyLookupFactory</str>
>     <str name="dictionaryImpl">DocumentDictionaryFactory</str>
>     <str name="field">text</str>
>     <str name="weightField">medsite_id</str>
>     <str name="suggestAnalyzerFieldType">text_general</str>
>     <str name="buildOnCommit">true</str>
>     <str name="threshold">0.1</str>
>   </lst>
> </searchComponent>
>
> <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
>   <lst name="defaults">
>     <str name="suggest">on</str>
>     <str name="suggest.dictionary">mySuggester</str>
>     <str name="suggest.count">10</str>
>   </lst>
>   <arr name="components">
>     <str>suggest</str>
>   </arr>
> </requestHandler>
>