Try changing splitOnCaseChange="1" to splitOnCaseChange="0", and fully reindex your data. One possibility is that you may have indexed Marcos and Dejan before adding the lower case filter, which would cause the query to be lower case even though the indexed data might not be lower case.

-- Jack Krupansky

-----Original Message----- From: Dejan Caric
Sent: Sunday, February 24, 2013 4:34 AM
To: solr-user@lucene.apache.org
Subject: Solr Suggester component doesn't return hits for non-English words

Hi everyone,

I have defined a suggest component like this:

<searchComponent class="solr.SpellCheckComponent" name="suggest">
   <lst name="spellchecker">
       <str name="name">suggest</str>
       <str
name="classname">org.apache.solr.spelling.suggest.Suggester</str>
       <str
name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>

       <str name="field">autosuggest_general</str>
       <float name="threshold">0.005</float>
       <str name="buildOnCommit">true</str>
   </lst>
</searchComponent>
<requestHandler class="org.apache.solr.handler.component.SearchHandler"
name="/suggest">
   <lst name="defaults">
       <str name="spellcheck">true</str>
       <str name="spellcheck.dictionary">suggest</str>
       <str name="spellcheck.onlymorepopular">true</str>
       <str name="spellcheck.count">5</str>
       <str name="spellcheck.collate">true</str>
   </lst>
   <arr name="components">
       <str>suggest</str>
   </arr>
</requestHandler>

and autosuggest_general field like this:

<field name="autosuggest_general" type="autosuggest_type" indexed="true"
stored="true" multiValued="true" />
<fieldType name="autosuggest_type" class="solr.TextField"
positionIncrementGap="100">
   <analyzer>
       <charFilter class="solr.HTMLStripCharFilterFactory"/>
       <tokenizer class="solr.WhitespaceTokenizerFactory"/>
       <filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
       <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
</fieldType>

The suggester component doesn't return any hits for non-English words.

I want to get auto-complete for word `Marcos`.
So when I call http://localhost:8983/solr/mycore/suggest?q=mar I get the
following response:

<response>
   <lst name="responseHeader">
       <int name="status">0</int>
       <int name="QTime">2</int>
   </lst>
   <lst name="spellcheck">
       <lst name="suggestions"/>
   </lst>
</response>

And regular search returns 10 hits:
http://localhost:8983/solr/mycore/select?q=autosuggest_general:marcos

For `de` I get the following response:

<response>
   <lst name="responseHeader">
       <int name="status">0</int>
       <int name="QTime">1</int>
   </lst>
   <lst name="spellcheck">
       <lst name="suggestions">
           <lst name="de">
               <int name="numFound">3</int>
               <int name="startOffset">0</int>
               <int name="endOffset">2</int>
               <arr name="suggestion">
                   <str>design</str>
                   <str>developer</str>
                   <str>development</str>
               </arr>
           </lst>
           <str name="collation">design</str>
       </lst>
   </lst>
</response>

`design`, `developer`, and `development` are fine but I don't get `dejan`
in suggestions and that word does exist in autosuggest_general field.

http://localhost:8983/solr/mycore/select?q=autosuggest_general:dejan returns

<response>
   <lst name="responseHeader">
       <int name="status">0</int>
       <int name="QTime">1</int>
       <lst name="params">
           <str name="q">autosuggest_general:dejan</str>
       </lst>
   </lst>
   <result name="response" numFound="7" start="0">
   ...
   </result>
</response>

I'm using Solr 4.1

Any help would be greatly appreciated!

// Dejan

Reply via email to