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 Mr Havercamp <mr...@gmail.com> on 2011/06/20 20:59:29 UTC

spellcheck.q results in null error when used with suggester

I have been playing around with the new suggestion feature in Solr 3.1 
but have run into issues when using spellcheck.q.

I initiate the suggestion handler using:

http://www.domain.tld:8983/solr/suggest?spellcheck.build=true
http://www.domain.tld:8983/solr/suggest?spellcheck.reload=true

And then run the following which generates results:

http://www.wijiti.local:8983/solr/suggest?q=sha&spellcheck=true

But the following generates a NullPointer exception:

http://www.wijiti.local:8983/solr/suggest?q=sha&spellcheck=true&spellcheck.q=sha

The error stack trace:

INFO: [] webapp=/solr path=/suggest 
params={spellcheck=true&q=sha&spellcheck.q=sha} status=500 QTime=2
20/06/2011 11:03:27 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NullPointerException
     at 
org.apache.solr.handler.component.SpellCheckComponent.getTokens(SpellCheckComponent.java:475)
     at 
org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:131)
     at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
     at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
     at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
     at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
     at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
     at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
     at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
     at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
     at 
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
     at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
     at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
     at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     at org.mortbay.jetty.Server.handle(Server.java:326)
     at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
     at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
     at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
     at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


My solrconfig.xml configuration:

<searchComponent name="suggest" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">title_suggest</str>
<str name="buildOnCommit">true</str>
<str name="sourceLocation">american-english</str>
</lst>
</searchComponent>

<requestHandler name="/suggest" 
class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">10</str>
<str name="spellcheck.collate">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>

It's entirely possible I'm missing fundamental in my configuration but 
any help would be much appreciated.

Cheers


Hayden