Allthough making use of AnalyzingInfixSuggester I still getting "either or".

When lowercase-filter is active I always get suggestions, BUT they are 
lowercased (i.e. "chamäleon").
When lowercase-filter is not active I only get suggestions when querying "Chamä"

my 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.AnalyzingInfixLookupFactory</str>
        <str 
name="dictionaryImpl">org.apache.solr.spelling.suggest.DocumentDictionaryFactory</str>
        <str name="field">suggest</str>  
        <str name="buildOnCommit">true</str>
        <str name="storeDir">suggester</str>
        <str name="suggestAnalyzerFieldType">text_suggest</str>
        <str name="minPrefixChars">4</str>
      </lst>
    </searchComponent>
...

my schema.xml
...
<field indexed="true" multiValued="true" name="suggest" stored="false" 
type="text_suggest"/>
...
    <fieldType class="solr.TextField" name="text_suggest" 
positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt"/>
<!-- <filter class="solr.LowerCaseFilterFactory"/> -->        
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt"/> 
<!--        <filter class="solr.LowerCaseFilterFactory"/>    -->    
  </analyzer>      
    </fieldType>
...

-----Ursprüngliche Nachricht-----
Von: Michael Sokolov [mailto:msoko...@safaribooksonline.com] 
Gesendet: Donnerstag, 4. Dezember 2014 14:05
An: solr-user@lucene.apache.org
Betreff: Re: Keeping capitalization in suggestions?

Have a look at AnalyzingInfixSuggester - it does what you want.

-Mike

On 12/4/14 3:05 AM, Clemens Wyss DEV wrote:
> When I index a text such as "Chamäleon" and look for suggestions for "chamä" 
> and/or "Chamä", I'd expect to get "Chamäleon" (uppercased).
> But what happens is
>
> If lowecasefilter (see below (1)) set
> "chamä" returns "chamäleon"
> "Chamä" does not match
>
> If lowecasefilter (1) not set
> "Chamä" returns "Chamäleon"
> "chamä" does not match
>
> I guess lowecasefilter should not be set/active, but then how do I get 
> matches even if the search term is lowercased?
>
> Context:
> schema.xml
> ...
>      <fieldType class="solr.TextField" name="text_de" 
> positionIncrementGap="100">
>        <analyzer type="index">
>          <tokenizer class="solr.StandardTokenizerFactory"/>
>          <filter class="solr.LowerCaseFilterFactory"/>
>          <filter class="solr.StopFilterFactory" ignoreCase="true" 
> words="lang/stopwords_de.txt"/>
>          <filter class="solr.GermanLightStemFilterFactory"/>
>        </analyzer>
>        <analyzer type="query">
>          <tokenizer class="solr.StandardTokenizerFactory"/>
>          <filter class="solr.SynonymFilterFactory" expand="true" 
> ignoreCase="true" synonyms="synonyms.txt"/>
>          <filter class="solr.LowerCaseFilterFactory"/>
>          <filter class="solr.StopFilterFactory" ignoreCase="true" 
> words="lang/stopwords_de.txt"/>
>          <filter class="solr.GermanLightStemFilterFactory"/>
>        </analyzer>
>      </fieldType>
> ...
>      <fieldType class="solr.TextField" name="text_suggest" 
> positionIncrementGap="100">
>        <analyzer>
>          <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
>          <filter class="solr.StopFilterFactory" ignoreCase="true" 
> words="stopwords.txt"/>
>          <filter class="solr.LowerCaseFilterFactory"/> <!-- (1) -->
>        </analyzer>
>      </fieldType>
>
> 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>
> ...
>

Reply via email to