Я пробовал решения, перечисленные в следующем вопросе.
Удаление повторяющихся значений Solr в многозначном поле
Я использую обработчик импорта данных и создаю несколько значений для поля с помощью RegexTransformer.
Мой sql возвращает это для столбца FOO
Джонни Кэш, Бонни Мани, Хани Банни, Джонни Кэш
и я сохраняю его в многозначном поле foo, используя splitBy=","
<field column="FOO" name="foo" splitBy=","/>
и он хранится в многозначном поле как таковой
{"Джонни Кэш", "Бонни Мани", "Милый зайчик", "Джонни Кэш"}
Я добавил это в solrconfig xml
<updateRequestProcessorChain name="distinctMultiValued" default="true">
<!-- To remove duplicate values in a multivalued field-->
<processor class="DistributedUpdateProcessorFactory"/>
<processor class="UniqFieldsUpdateProcessorFactory">
<str name="fieldRegex">foo</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
Я также пробовал fieldName вместо fieldRegex и пробовал * oo вместо foo, но дубликаты остаются.
Это как-то связано с RegexTransformer?
У меня также есть цепочка обновлений с TrimFieldsUpdateProcessorFactory
, чем работает без проблем.