Apache solr 中不区分大小写的搜索

Case insensitive search in Apache solr

我使用 PHP 在 Solr 中创建了一个字符串类型的搜索应用程序,并且运行良好。唯一发现的问题是它不支持不区分大小写的搜索。搜索后我发现 solr 不支持 "String".

类型的不区分大小写的搜索

所以我创建了一个自定义类型 "string_ci" 并配置如下。

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> -
    <field name="loc_code" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="loc_name" type="string_ci" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="state" type="string" indexed="true" stored="true" required="true" multiValued="false" />

这是我对 "string_ci"

的字段类型定义
    <fieldType name="string_ci" class="solr.TextField"
            sortMissingLast="true" omitNorms="true">
            <analyzer>
                <tokenizer class="solr.KeywordTokenizerFactory"/>           
                <filter class="solr.LowerCaseFilterFactory" />
       </analyzer>
    </fieldType>

不幸的是,这不起作用。谁能指出我哪里出错了?

试试这个

<fieldType name="string_ci" class="solr.TextField" sortMissingLast="true"    omitNorms="true" 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>