Spellchecker giving suggestions for correct words

432 Views Asked by At

Querying an alias with 5 collections and getting suggestions for correct words as well. Ex:- Collection1 has "tire policy" in it Collection2 has a word "polite" in it. When I query "tire policy" it checks and returns "polite" as a suggestion for "policy". P.S. - During query time i am passing

spellcheck.maxResultsForSuggest=0

As without it spellchecker does not correct the wrong spellings.

I am using DirectSolrSpellchecker Adjusted the <float name="maxQueryFrequency">0.01</float> to

<float name="maxQueryFrequency">1</float> 

but getting the same issue.

Direct solr spellchecker code-

 <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">text</str>
      <str name="classname">solr.DirectSolrSpellChecker</str>
       <str name="distanceMeasure">org.apache.lucene.search.spell.LevenshteinDistance</str>
      <float name="accuracy">0.5</float>
      <int name="maxEdits">2</int>
      <int name="minPrefix">1</int>
      <int name="maxInspections">5</int>
      <int name="minQueryLength">3</int>
      <float name="maxQueryFrequency">1</float>
    </lst>

spellchecker inside handler

<str name="spellcheck.dictionary">default</str>
        <str name="spellcheck.dictionary">wordbreak</str>
        <str name="spellcheck.dictionary">file</str>
        <str name="spellcheck">on</str>
        <str name="spellcheck.extendedResults">true</str>
        <str name="spellcheck.count">10</str>
        <str name="spellcheck.alternativeTermCount">5</str>
        <str name="spellcheck.maxResultsForSuggest">5</str>
        <str name="spellcheck.collate">true</str>
        <str name="spellcheck.collateExtendedResults">true</str>
        <str name="spellcheck.maxCollationTries">10</str>
        <str name="spellcheck.maxCollations">5</str>

There should not be any suggestions for policy as "maxqueryfreqency" is set to "1".

1

There are 1 best solutions below

2
On

Have you tried to adjust the maxResultsForSuggest parameter? With your current value of 5, if your query

returns 5 or fewer results, the spellchecker will report "correctlySpelled=false" and also offer suggestions

solr 8.1 documentation