Solr:如何在通过 CSV 导入时以小写形式存储特定字段的数据?

Solr: How to store data in lower case for specific field while importing by CSV?

我在 schema.xml 中有如下字段

<field name="Colour" type="string"/>
<field name="MerchantCampaignName" multiValued="false" type="string" indexed="true"/>
<field name="Name" type="text_general" indexed="true"/>
<field name="SKU" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="Size" type="string" indexed="true"/>

所以当从 CSV 导入数据时,在颜色字段中有像 "red", "Red", "Reds".

这样的值

"Colour" 字段的分面查询中,它将所有三个值视为不同。

那么是否有任何设置可以将 "Colour" 字段保存为小写以及单数和复数?

使用 KeywordTokenizerFactoryLowerCaseFilterFactory 相同。您已使用上述方法创建自定义字段类型并将其应用于您的字段。

keywordTokenizer 是:此标记器将整个文本字段视为单个标记。

您可以为您的字段使用以下字段类型。优点是它有助于在所有情况下搜索单词...大写和小写。

<fieldType name="lowercaseExactMatch" class="solr.TextField" positionIncrementGap="100">
   <analyzer>
     <tokenizer class="solr.KeywordTokenizerFactory"/>
     <filter class="solr.LowerCaseFilterFactory" />
   </analyzer>
</fieldType>

这是您的字段定义:

<field name="Colour" type="lowercaseExactMatch" indexed="true" stored="true"/>