Thanks for all the insightful links.
I tried 
http://www.cominvent.com/2012/01/25/super-flexible-autocomplete-with-solr but 
that approach returns searchresults instead of term-suggestions.

I have (at the moment) a solution based on 
http://wiki.apache.org/solr/TermsComponent . But I might want 
multi-term-suggestions (and fuzzyness). 
Therefore I'd be very much interested how AnalyzingInfixLookupFactory (or any 
other suggest-component) would allow to
a) return case-sensitive suggestions (i.e. as-indexed/stored)
b) allow case-insensitive suggestion-lookup
?
Anybody else doing what I'd like to do?

-----Ursprüngliche Nachricht-----
Von: Ahmet Arslan [mailto:iori...@yahoo.com.INVALID] 
Gesendet: Montag, 8. Dezember 2014 19:25
An: solr-user@lucene.apache.org
Betreff: Re: AW: Keeping capitalization in suggestions?

Hi Clemens,

There a a number of ways to implement auto complete/suggest. Some of them pull 
data from indexed terms, therefore they will be lowercased. Some pull data from 
stored values, therefore capitalisation is preserved.

Here are great resources on this topic.

https://lucidworks.com/blog/auto-suggest-from-popular-queries-using-edgengrams/
http://blog.trifork.com/2012/02/15/different-ways-to-make-auto-suggestions-with-solr/
http://www.cominvent.com/2012/01/25/super-flexible-autocomplete-with-solr/

Ahmet


On Monday, December 8, 2014 5:43 PM, Clemens Wyss DEV <clemens...@mysign.ch> 
wrote:

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