НАЧАЛО >> Слияние записей >> Мергеры полей📄 Скачать в DOCX
Специализированные мержеры полей находятся в каталоге modules/MergeRecords/FieldMergers.
Для поля конкретного типа записи модуль ищет файл:
modules/MergeRecords/FieldMergers/<тип записи>/<номер поля>.inc
Имя класса должно соответствовать шаблону:
CSpiderFieldMerger_<TYPE>_<FIELD>
Класс может реализовывать методы:
MergeField($res, $rectype, $r, $sr) - обработка поля целиком;MergeOcc($res, $rectype, $r, $sr, $occ) - обработка конкретного повторения поля.Если специализированного класса нет, SetFieldOcc использует базовое поведение: когда в записи-приемнике меньше повторений поля, недостающее повторение копируется из записи-источника.
Общие вспомогательные мержеры:
Author.inc - нормализация авторских полей, подполя авторитетной записи, пробелов и места работы автора;KeyWords.inc - нормализация ключевых слов, разбиение по разделителям и пересборка уникального списка;ReplaceField.inc - замена значения поля;SingleFieldOcc.inc - ограничение поля одним повторением;SingleFieldOccReplaceSubField.inc - сочетание ограничения повторений и замены значения;url.inc - перенос ссылок, внутренних файлов, индексов и постановка задач импорта полного текста;event.inc - перенос ссылок событий.Каталоги ASP, AUNTD, J, NJ, PAZK, PVK, RDR, RDRU, SPEC, MUSP, IMCR, Event содержат привязки общих алгоритмов к конкретным типам записей и полям.
При добавлении нового мержера нужно учитывать три правила:
UnsetStatField, если поле не должно участвовать в статистическом выборе значений;RetChanged или флаги changers явно отмечать изменение записи-приемника или записи-источника;