【问题标题】:Case insensitive search in Apache solrApache solr 中不区分大小写的搜索
【发布时间】:2015-10-02 15:17:12
【问题描述】:

我在 Solr 中使用 PHP 创建了一个类型为字符串的搜索应用程序,并且运行良好。发现的唯一问题是它不能支持不区分大小写的搜索。搜索后我发现 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>

很遗憾,这不起作用。谁能指出我哪里出错了?

【问题讨论】:

标签: php search solr


【解决方案1】:

试试这个

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    相关资源
    最近更新 更多