[ https://issues.apache.org/jira/browse/SOLR-10395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15961025#comment-15961025 ]
James Dyer commented on SOLR-10395: ----------------------------------- bq. The field is filled with lots of data created by edge ngrams, since it's intended usage is for an autocomplete field. The collate functionality doesn't generally work with ngrams. Before the collate functionality existed with its current features, users would use ngram fields to get phgrase-level spellchecking. But the collation feature is intended to give phrase-level spell corrections without needing to index all the additional data. So typically you'd use either ngrams _or_ you'd use collate, but not both together. If I were you, I'd also look using one of the Suggesters instead of spellcheck for suggestions. Aside from this, it would be best if it didn't throw NPE! Could you give an example of the full query parameters for a query that returns 2 results and succeeds? Could you set "maxCollations" down from 3 to 2 and see if that causes it to fail? If not, could you also provide an example that fails? Possibly we can create a failing unit test, if I can know enough about what you're doing. > NPE during spell check with result collation > -------------------------------------------- > > Key: SOLR-10395 > URL: https://issues.apache.org/jira/browse/SOLR-10395 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: spellchecker > Affects Versions: 6.2.1 > Reporter: Frank Steggink > > I'm getting a NullPointerException when using collation during spell check. > This is the message I'm getting: Exception trying to re-query to check if a > spell check possibility would return any hits. > Stack trace: > {code} > 2017-03-13 13:05:54.618 WARN (qtp472654579-84) [c:locatieserver s:dkk > r:core_node4 x:locatieserver_dkk_replica2] o.a.s.s.SpellCheckCollator > Exception trying to re-query to check if a spell check possibility would > return any hits. > java.lang.NullPointerException > at > org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:150) > at > org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(SpellCheckComponent.java:297) > at > org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:209) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:295) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:154) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:2089) > ... > {code} > My spell check config for this search handler: > {code:xml} > <str name="spellcheck">on</str> > <str name="spellcheck.dictionary">suggest</str> > <str name="spellcheck.extendedResults">false</str> > <str name="spellcheck.count">5</str> > <str name="spellcheck.alternativeTermCount">2</str> > <str name="spellcheck.maxResultsForSuggest">3</str> > <str name="spellcheck.collate">true</str> > <str name="spellcheck.collateExtendedResults">true</str> > <str name="spellcheck.maxCollationTries">5</str> > <str name="spellcheck.maxCollations">3</str> > {code} > The field "suggest" is a field in the index, which is also (usually) queried > with this search handler. The field is filled with lots of data created by > edge ngrams, since it's intended usage is for an autocomplete field. > This issue is very similar to SOLR-8807, but the NPE is occurring one line in > the code later > (solr\core\src\java\org\apache\solr\spelling\SpellCheckCollator.java). As a > result the patch attached to that issue probably won't work in my case. > {code:java} > try { > queryComponent.prepare(checkResponse); > if (docCollectionLimit > 0) { > int f = checkResponse.getFieldFlags(); > checkResponse.setFieldFlags(f |= > SolrIndexSearcher.TERMINATE_EARLY); > } > queryComponent.process(checkResponse); > hits = (Integer) checkResponse.rsp.getToLog().get("hits"); > } catch (EarlyTerminatingCollectorException etce) { > {code} > Although I'm using Solr 6.2.1, the source file is still identical to Solr > 6.5.0. > The line causing my exception is when determining the hits. I've noticed the > exception only occurs when no more than 2 alternatives are found, but when 3 > alternatives (maxCollations) are found, the NPE isn't occurring. > As a workaround I could live for now with turning collations off. > Please let me know if you need more information. Thanks! -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org