I store 120000 wine records in a SQL Server database. Until now I've searched successfully for wine names by performing the following SQL:
WHERE (LOWER(Wine.name) LIKE '%" + (searchString) + "%'")
I am now in the process of switching over to using Solr. I would like to search for "clos rene" and get "Clos Réné" back. However Solr is returning all records that match 'Clos' and all records that match 'Réné'. I've have tried the following field definition:
<fieldType name="c_text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Could someone please help me define the correct field type so that I can reproduce my SQL query above to return case insensitive and accent insensitive results for multiple words with white space in between?
I have also experimented with wildcard searches using filed type 'string', but I can't get it to work as case-insensitive.