My first guess is that no documents match the query "provinical court". Because you have "spellcheck.maxCollationTries" set to a non-zero value, it will not return these as collations unless the correction will return hits. You can test my theory out by removing "spellcheck.maxCollationTries" from the request and see if it returns "provinical court" as expected.
If this isn't it, then give us the full query request and also the full spellcheck response for your failing case. James Dyer Ingram Content Group (615) 213-4311 -----Original Message----- From: Raheel Hasan [mailto:raheelhasan....@gmail.com] Sent: Friday, May 31, 2013 9:38 AM To: solr-user@lucene.apache.org Subject: Spell Checker (DirectSolrSpellChecker) correct settings Hi guyz, I am new to solr. Here is the thing I have: When i search "Courtt", I get correct suggestion saying: ------------------------------------------------ "spellcheck": { "suggestions": [ "courtt", { "numFound": 1, "startOffset": 0, "endOffset": 6, "suggestion": [ "court" ] }, "collation", [ "collationQuery", "court", "hits", 53, "misspellingsAndCorrections", [ "courtt", "court" ] ] ] }, ------------------------------------------------ But when I try "Provincial Courtt", it gives me no suggestions, instead it searches for "Provincial" only. Here is the spell check settings in *solrconfig.xml*: <searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType">text_en_splitting</str> <!-- a spellchecker built from a field of the main index --> <lst name="spellchecker"> <str name="name">default</str> <str name="classname">solr.DirectSolrSpellChecker</str> <str name="field">text</str> <!-- minimum accuracy needed to be considered a valid spellcheck suggestion --> <float name="accuracy">0.5</float> <!-- Require terms to occur in 1% of documents in order to be included in the dictionary --> <float name="thresholdTokenFrequency">.01</float> <!-- the spellcheck distance measure used, the default is the internal levenshtein --> <!--<str name="distanceMeasure">internal</str>--> <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 --> <int name="maxEdits">1</int> <!-- the minimum number of characters the terms should share --> <int name="minPrefix">3</int> <!-- maximum number of possible matches to review before returning results --> <int name="maxInspections">3</int> <!-- minimum length of a query term to be considered for correction --> <int name="minQueryLength">4</int> <!-- maximum threshold of documents a query term can appear to be considered for correction --> <float name="maxQueryFrequency">0.01</float> </lst> <!-- a spellchecker that can break or combine words. See "/spell" handler below for usage --> <lst name="spellchecker"> <str name="name">wordbreak</str> <str name="classname">solr.WordBreakSolrSpellChecker</str> <str name="field">text</str> <str name="combineWords">true</str> <str name="breakWords">true</str> <int name="maxChanges">5</int> </lst> </searchComponent> ------------------------------------------------ Here is the *requestHandler*: <requestHandler name="/select" class="solr.SearchHandler"> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">20</int> <str name="df">text</str> <!-- Spell checking defaults --> <str name="spellcheck">on</str> <str name="spellcheck.count">5</str> <str name="spellcheck.onlyMorePopular">true</str> <str name="spellcheck.maxResultsForSuggest">5</str> <str name="spellcheck.alternativeTermCount">2</str> <str name="spellcheck.extendedResults">false</str> <str name="spellcheck.collate">true</str> <str name="spellcheck.maxCollations">3</str> <str name="spellcheck.maxCollationTries">3</str> <str name="spellcheck.collateExtendedResults">true</str> </lst> <!-- append spellchecking to our list of components --> <arr name="last-components"> <str>spellcheck</str> </arr> </requestHandler> -- Regards, Raheel Hasan