Обработчик ввода данных SOLR ( DIH): извлечь адреса электронной почты во время индексации и поместить в другое поле?
У меня есть поле с именем main_text, которое содержит большие текстовые записи.
Я хочу переиндексировать свои данные, создав новую коллекцию, но я хочу извлечь все адреса электронной почты из этого поля в новое специальное поле с именем emails_fields.
Каков будет лучший способ сделать это?
Какой обработчик использовать? DIH? другой? какого типа должно быть это новое поле?
1 ответ
Чтобы использовать DataImportHandler, вы должны добавить что-то похожее на следующее data-config.xml
файл.
<field column="email_fields" regex="(/S+@/S+)" sourceColName="main_text"/>
Это будет искать адреса электронной почты, которые соответствуют регулярному выражению /S+@/S+
, Это регулярное выражение должно быть изменено на что-то лучшее для реального использования.
Тип поля зависит от того, как вы хотите его искать, но, вероятно, оно должно быть string
или же text_general
и если вы ожидаете, что в каждом документе будет более одного электронного письма, оно должно быть многозначным.