Solr: Как сохранить данные в нижнем регистре для указанного поля c при импорте в CSV? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть поля в 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" в нижнем регистре, а также для единственного и множественного числа?

1 Ответ

1 голос
/ 19 февраля 2020

Используйте KeywordTokenizerFactory и LowerCaseFilterFactory для того же самого. Вы создали собственный тип поля, используя приведенное выше, и применили его к своему полю.

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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...