Erick,
We actaully have a working version of Solr 4.6 Spellchecker, the
configuration details are as mentioned below:

*Solr 4.6 - schema.xml*
<field name="suggest" type="text_suggest" indexed="true" stored="false"
multiValued="true" />
<copyField source="text" dest="suggest"/>

                <fieldType name="text_suggest" class="solr.TextField"
positionIncrementGap="100">
                        <analyzer type="index">
                                <tokenizer 
class="solr.UAX29URLEmailTokenizerFactory"/>
                                <filter class="solr.StopFilterFactory" 
ignoreCase="true"
words="lang/stopwords_en.txt" />
                                <filter class="solr.ASCIIFoldingFilterFactory"/>
                                <filter 
class="solr.EnglishPossessiveFilterFactory"/>
                                <filter 
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                                <filter class="solr.TrimFilterFactory"/>
                                <filter class="solr.LowerCaseFilterFactory"/>
                        </analyzer>
                        <analyzer type="query">
                                <tokenizer 
class="solr.UAX29URLEmailTokenizerFactory"/>
                                <filter class="solr.StopFilterFactory" 
ignoreCase="true"
words="lang/stopwords_en.txt" />
                                <filter class="solr.ASCIIFoldingFilterFactory"/>
                                <filter 
class="solr.EnglishPossessiveFilterFactory"/>
                                <filter class="solr.LowerCaseFilterFactory"/>
                        </analyzer>
                </fieldType>

*Solr 4.6 - solrconfig.xml*
<requestHandler class="org.apache.solr.handler.component.SearchHandler"
name="/suggest">
        <lst name="defaults">
            <str name="echoParams">none</str>
            <str name="wt">json</str>
            <str name="indent">false</str>
            <str name="spellcheck">true</str>
            <str name="spellcheck.dictionary">suggestDictionary</str>
            <str name="spellcheck.onlyMorePopular">true</str>
            <str name="spellcheck.count">5</str>
            <str name="spellcheck.collate">false</str>
        </lst>
        <arr name="components">
            <str>suggest</str>
        </arr>
    </requestHandler>

<searchComponent class="solr.SpellCheckComponent" name="suggest">
        <lst name="spellchecker">
            <str name="name">suggestDictionary</str>
            <str
name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str
name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookupFactory</str>
            <str name="field">suggest</str>
            <float name="threshold">0.</float>
            <str name="buildOnCommit">true</str>
        </lst>
    </searchComponent>

*Solr 4.6 Spellcheck query*
http://localhost:8983/solr/portal_documents/suggest?&wt=xml&spellcheck.q=wh

*Solr 4.6 Spellcheck results*
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="wh">
<int name="numFound">5</int>
<int name="startOffset">0</int>
<int name="endOffset">2</int>
<arr name="suggestion">
*<str>when</str>
<str>what</str>
<str>where</str>
<str>which</str>
<str>who</str>*
</arr>
</lst>
</lst>
</lst>
</response>

Now, we are migrating to Solr 5.1 & have the following configuration
details:
*Solr 5.1 - schema.xml*

<field name="suggest" type="c_suggest" indexed="true" stored="false"
multiValued="true" />
<copyField source="text" dest="suggest"/>

                <fieldType name="c_suggest" class="solr.TextField"
positionIncrementGap="100">
                        <analyzer type="index">
                                <tokenizer 
class="solr.UAX29URLEmailTokenizerFactory"/>
                                <filter class="solr.StopFilterFactory" 
ignoreCase="true"
words="lang/stopwords_en.txt" />
                                <filter class="solr.ASCIIFoldingFilterFactory"/>
                                <filter 
class="solr.EnglishPossessiveFilterFactory"/>
                                <filter 
class="solr.RemoveDuplicatesTokenFilterFactory"/>
                                <filter class="solr.TrimFilterFactory"/>
                                <filter class="solr.LowerCaseFilterFactory"/>
                        </analyzer>
                        <analyzer type="query">
                                <tokenizer 
class="solr.UAX29URLEmailTokenizerFactory"/>
                                <filter class="solr.StopFilterFactory" 
ignoreCase="true"
words="lang/stopwords_en.txt" />
                                <filter class="solr.ASCIIFoldingFilterFactory"/>
                                <filter 
class="solr.EnglishPossessiveFilterFactory"/>
                                <filter class="solr.LowerCaseFilterFactory"/>
                        </analyzer>
                </fieldType>

*Solr 5.1 - solrconfig.xml*

  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
     <str name="queryAnalyzerFieldType">c_suggest</str>
    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">suggest</str>
      <str name="classname">solr.DirectSolrSpellChecker</str>
      <str name="distanceMeasure">internal</str>
      <float name="accuracy">0.01</float>
      <int name="maxEdits">2</int>
      <int name="minPrefix">1</int>
      <int name="maxInspections">5</int>
      <int name="minQueryLength">1</int>
      <float name="maxQueryFrequency">0.01</float>
      <float name="thresholdTokenFrequency">.01</float>
    </lst>
  </searchComponent>

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

*Solr 5.1 SPellcheck query (same as Solr 4.6)*
http://localhost:8983/solr/portal_documents/spell?&wt=xml&spellcheck.q=wh

*Solr 5.1 Spellcheck results*
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">62</int>
</lst>
<result name="response" numFound="0" start="0"/>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="wh">
<int name="numFound">2</int>
<int name="startOffset">0</int>
<int name="endOffset">2</int>
<arr name="suggestion">
*<str>we</str>
<str>who</str>*
</arr>
</lst>
</lst>
</lst>
</response>

Both the Solr versions have same data & spellcheck index is also built.
I want to get the same results for Spellchecker in Solr 5.1 as I am getting
in 4.6, but I am not able to get it.

Can you please suggest an appropriate fix?
Is there some problem in my Solr 5.1 configuration?


Regards,
Sachin Vyas.




--
View this message in context: 
http://lucene.472066.n3.nabble.com/Suggester-configuration-queries-tp4214950p4215393.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to