0

我将 solr 引擎用于电子商务网站 我已将搜索标签作为字符串存储在单个字段中,如下所示,我需要将该字段转换为不区分大小写。我尝试应用小写过滤器工厂,但它没有为外地工作

<field name="tags" type="string" multiValued="true" indexed="true" stored="true"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
  <analyzer>
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>

现场样本

"tags":["Property",
          "House",
          "Land",
          "Home",
          "House For Sale",
          "Property For Sale",
          "Land For Sale",
          "Prime property for sale",
          "Prime property for sale in Colombo 03"],

4

1 回答 1

1

您已将您的字段定义为StrField. 字符串字段不能附加分析链。您必须将其更改为TextField

<fieldType name="string" class="solr.TextField" sortMissingLast="true" docValues="true"/>
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

但是,我建议使用与字段不同的名称string,因为string字段类型应以特定方式工作(例如用于id字段时等)。相反,请使用描述其功能的内容,例如string_caseinsensitive.

于 2021-02-12T14:27:14.753 回答