Im trying to use spell check component.
My *schema* is:(i have included only fields necessary for spell check not
the entire schema)
<fields> 

<field name="doc_id" type="uuid" indexed="true" stored="true" default="NEW"
multiValued="false"/>
<field name="id" type="string" indexed="true" stored="true" required="true"
multiValued="false"/>
<field name="contents" type="text" indexed="true" stored="true"
multiValued="false"/>
<field name="author" type="string" indexed="true" stored="true"
multiValued="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="_version_" type="long" indexed="true" stored="true"
multiValued="false"/>
<copyfield source="id" dest="text" />
<dynamicField name="ignored_*" type="text" indexed="false" stored="false"
multiValued="true"/>

<field name="spelltext" type="spell" indexed="true" stored="false"
multiValued="true" />
<copyField source="contents" dest="spelltext" />
</fields> 
<types>
<fieldType name="spell" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.EnglishMinimalStemFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" /> 
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
splitOnCaseChange="1"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" /> 
</analyzer>
</fieldType>
</types>

My *solrconfig* is:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">text</str>
<lst name="spellchecker">
<str name="name">direct</str>
<str name="field">contents</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.8</float>
<int name="maxEdits">1</int>
<int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">3</int>
<float name="maxQueryFrequency">0.01</float>
</lst>
</searchComponent>  

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
  <lst name="spellchecker">
   <str name="name">wordbreak</str>
   <str name="classname">solr.WordBreakSolrSpellChecker</str>
   <str name="field">contents</str>
   <str name="combineWords">true</str>
   <str name="breakWords">true</str>
   <int name="maxChanges">10</int>
 </lst>
</searchComponent>  

<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">direct</str> 
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck.dictionary">wordbreak</str> 
<str name="spellcheck">on</str>
<str name="spellcheck.extendedResults">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.collate">true</str> 
<str name="spellcheck.collateExtendedResults">true</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>

I get this *error*:
java.lang.NullPointerException at
org.apache.solr.spelling.*ConjunctionSolrSpellChecker.addChecker*(ConjunctionSolrSpellChecker.java:58)
at
org.apache.solr.handler.component.SpellCheckComponent.getSpellChecker(SpellCheckComponent.java:475)
at
org.apache.solr.handler.component.SpellCheckComponent.prepare(SpellCheckComponent.java:106)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:187)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at
org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1797) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:637)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:141)
at 

I know that the error might be in addchecker method,i read this method but
the coding of this method is such that, for all the null values, default
values are added.
(eg: if (queryAnalyzer == null) 
 queryAnalyzer = checker.getQueryAnalyzer(); )
Now so i feel that the Null checker value is sent when  
/checkers.add(checker);/  is executed.

If i am right tell me how to resolve this,else what has gone wrong.
Thanks in advance.



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Null-pointer-exception-in-spell-checker-at-addchecker-method-tp4105489.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to