Dali,

You might want to try to increase spellcheck.count to something higher, maybe 
10 or 20.  The default spell checker pre-filters suggestions in such a way that 
you often need to ask for more results than you actually want to get the right 
ones.  The other thing you might want to see is to go into the "spellchecker" 
directory after you run your first query and see if it built the dictionary. 

James Dyer
E-Commerce Systems
Ingram Content Group
(615) 213-4311

-----Original Message-----
From: Dali [mailto:medalibenmans...@gmail.com] 
Sent: Tuesday, November 08, 2011 5:45 AM
To: solr-user@lucene.apache.org
Subject: SpellChecker : not getting suggestions for misspelled words

Hello everyone !

I'm new to Solr and i'm facing a huge problem since yesterday with the
SpellChecker component in Solr.
I followed instructions in the wiki page, browsed forums and i don't get any
result when typing a misspelled word like other people.

Here is what i have:
 *schema.xml :*

<fieldType name="textSpell" class="solr.TextField"
positionIncrementGap="100">
                <analyzer type="index">
                        <tokenizer class="solr.StandardTokenizerFactory"/>
                        <filter class="solr.StopFilterFactory" 
ignoreCase="true" 
                        words="stopwords.txt"/>
                        <filter class="solr.StandardFilterFactory"/>
                        <filter class="solr.LowerCaseFilterFactory" />
                        <filter 
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                </analyzer>
                <analyzer type="query">
                        <tokenizer class="solr.StandardTokenizerFactory"/>
                        <filter class="solr.SynonymFilterFactory" 
synonyms="synonyms.txt" 
                        ignoreCase="true" expand="true"/>
                        <filter class="solr.StopFilterFactory" 
ignoreCase="true" 
                        words="stopwords.txt"/>
                        <filter class="solr.StandardFilterFactory"/>
                        <filter class="solr.LowerCaseFilterFactory" />
                        <filter 
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                </analyzer>
        </fieldType>
...
<field name="spell" type="textSpell" indexed="true" stored="true"
multiValued="true"/>
...
<copyField source="pr_name" dest="spell"/>

*solrconfig.xml*:

 <requestHandler name="/browse" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       
       <str name="wt">velocity</str>
       <str name="v.template">browse</str>
       <str name="v.layout">layout</str>
       <str name="title">Solritas</str>
       <str name="defType">edismax</str>
       <str name="q.alt">*:*</str>
       <str name="rows">10</str>
       <str name="fl">*,score</str>
       <str name="mlt.qf">
         pr_name^0.5 pr_infGenDesc^1.0 pr_OS^1.2 pr_plus^1.5 pr_techno^10.0
pr_moins^1.1 
       </str>
       <str name="mlt.fl">text,features,name,sku,id,manu,cat</str>
       <int name="mlt.count">3</int>

       <str name="qf">
          pr_name^0.5 pr_infGenDesc^1.0 pr_OS^1.2 pr_plus^1.5 pr_techno^10.0
pr_moins^1.1
       </str>
       <str name="facet">on</str>
       <str name="facet.field">cat</str>
       <str name="facet.field">manu_exact</str>
       <str name="facet.query">ipod</str>
       <str name="facet.query">GB</str>
       <str name="facet.mincount">1</str>
       <str name="facet.pivot">cat,inStock</str>
       <str name="facet.range">price</str>
       <int name="f.price.facet.range.start">0</int>
       <int name="f.price.facet.range.end">600</int>
       <int name="f.price.facet.range.gap">50</int>
       <str name="f.price.facet.range.other">after</str>
       <str name="facet.range">manufacturedate_dt</str>
       <str
name="f.manufacturedate_dt.facet.range.start">NOW/YEAR-10YEARS</str>
       <str name="f.manufacturedate_dt.facet.range.end">NOW</str>
       <str name="f.manufacturedate_dt.facet.range.gap">+1YEAR</str>
       <str name="f.manufacturedate_dt.facet.range.other">before</str>
       <str name="f.manufacturedate_dt.facet.range.other">after</str>
       
       <str name="hl">on</str>
       <str name="hl.fl">text features name</str>
       <str name="f.name.hl.fragsize">0</str>
       <str name="f.name.hl.alternateField">name</str>
     </lst>
     <arr name="last-components">
       <str>spellcheck</str>
     </arr>
     
  </requestHandler>

...
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">

    <str name="queryAnalyzerFieldType">textSpell</str>
    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">name</str>
      <str name="spellcheckIndexDir">spellchecker</str>
    </lst>
       <lst name="spellchecker">
         <str name="name">jarowinkler</str>
         <str name="field">spell</str>
         <str
name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>
         <str name="spellcheckIndexDir">spellcheckerJaro</str>
                 <str name="buildOnCommit">true</str> 
                 <str name="buildOnOptimize">true</str>
       </lst>
</searchComponent>

And here is what i'm typing:
http://localhost:8080/solr/select/?q=pr_name:sonadr&spellcheck=true&spellcheck.build=true
http://localhost:8080/solr/select/?q=pr_name:sonadr&spellcheck=true&spellcheck.build=true
 

and the correct pr_name value (which is indexed) is "Sonar"

Any suggestions ?


--
View this message in context: 
http://lucene.472066.n3.nabble.com/SpellChecker-not-getting-suggestions-for-misspelled-words-tp3490004p3490004.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to