Solr4.6搜索有些字段搜索的时候不需要区分大小写。这个时候需要做简单的过滤,建索引和搜索的时候把输入都转换成小写即可。配置如下:
<span style="font-size: 18px;"><fieldType name="text_ngrm" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index" > <tokenizer class="solr.NGramTokenizerFactory" minGramSize="1" maxGramSize="20"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query" > <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType></span>
配置中使用的过滤器工厂类LowerCaseFilterFactory的wiki定义如下:
solr.LowerCaseFilterFactory
Creates org.apache.lucene.analysis.LowerCaseFilter.
Lowercases the letters in each token. Leaves non-letter tokens alone.
Example: "I.B.M.", "Solr" ==> "i.b.m.", "solr".
意即,将每个token的字母小写化。不处理非字母的token。