public static function BeforeIndexExtended($fields): array
{
if ($fields['MODULE_ID'] == "iblock" && in_array($fields['PARAM2'], self::$Iblock)) { //вывести id инфоблока по названию иб
if (array_key_exists("BODY", $fields)) {
$idElements = trim(str_replace('S', '', $fields['ITEM_ID']));
$arDepartment = \CIBlockSection::GetList(
[],
[
'ACTIVE' => 'Y',
'IBLOCK_ID' => self::$Iblock,
'ID' => $idElements
],
false,
['ID', 'XML_ID']
);
if ($departItems = $arDepartment->fetch()) {
$fields['TITLE'] .= ' '.$departItems['XML_ID'];
}
}
}
return $fields;
}
есть такой код, когда запускается переиндексация, то мы записываем в конце title внешний код раздела, но проблема в том что в найденных элементах присутствует этот внешний код, каким образом можно убрать из title в таблице b_search_content внешний код, и оставить его в таблице b_search_content_title при индексации ?
пытался через события ниже, но не получается, не понимаю что должно быть в 3 аргументе
public static function OnAfterIndexAddExtended($searchContentId, &$fields)
{
if (
$fields['MODULE_ID'] !== 'iblock' ||
!$fields['ITEM_ID'] ||
!in_array($fields['PARAM2'], self::$Iblock)
) {
return;
}
//что здесь должно быть ?
$additionalWords = [
];
\CSearch::IndexTitle(
$fields['SITE_ID'],
$searchContentId,
implode(' ', $additionalWords)
);
$fields["TITLE"] .= implode(' ', $additionalWords);
\CSearchFullText::getInstance()->replace($searchContentId, $fields);
}