在solr中区分大小写和案例的insenistive搜索

时间:2014-04-11 06:46:13

标签: solr

我使用以下字段类型配置在solr中索引数据。我只能在那里表演 不区分大小写的搜索。例如:如果我输入文字: Abc abc 会得到相同的结果。

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.ClassicTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.StandardFilterFactory"/>
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.ClassicTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

但现在我的要求发生了变化。假设如果我正在寻找Abc那么它应该给所有结果与Abc匹配而不是abc,反向也应该有效。

目前的配置是否可行?如果没有,那么我应该使用什么配置。 请建议我。

1 个答案:

答案 0 :(得分:2)

只需从您的tokenizer中删除小写过滤器,它就可以解决您的问题。然后它不会将标记转换为小写,从而为您提供所需的结果。