ISolrImportCustomValues.FillValues

Синтаксис Fore

FillValues(MbObject: IMetabaseObject; Values: ISolrFieldValues);

Синтаксис Fore.NET

FillValues(MbObject: Prognoz.Platform.Interop.Metabase.IMetabaseObject; Values: IPrognoz.Platform.Interop.BISearch.ISolrFieldValues);

Параметры

MbObject. Источник данных, индексируемый в текущий момент.

Values. Коллекция значений пользовательских полей, которая будет передана для индексации.

Описание

Метод FillValues осуществляет формирование документов для индексации пользовательских полей в соответствии с указанными параметрами.

Комментарии

Метод FillValues должен быть переопределен в пользовательском классе. В методе указывается код, который будет заполнять значения пользовательских полей в коллекции Values. Метод будет выполняться для каждого индексируемого объекта, сам объект будет доступен в параметре MbObject.

Пример Fore

Class CSolrImportCustomValues: Object, ISolrImportCustomValues
    Sub FillValues(MbObject: IMetabaseObject; Values: ISolrFieldValues);
    Begin
        //Указание значений пользовательских полей для объекта с заданным ключом
        If MbObject.Key = 19815 Then
            Values.FindById("TAG", SearchEngineTargetType.SourceData).Value := "...";
        End If;
        //Если класс объекта соответствует табличному справочнику, то идёт индексация метаданных объектов
        If MbObject.ClassId = MetabaseObjectClass.KE_CLASS_STDDIM Then
            Values.FindById("COMMENTS", SearchEngineTargetType.MbObject).Value := "...";
        End If;
    End Sub FillValues;
End Class CSolrImportCustomValues;

Данный пример является макросом, содержащим реализацию метода, который заполняет значения пользовательских полей при индексации. Метод выполняется для каждого индексируемого объекта, в коде метода осуществляется проверка по ключу и классу объекта. В зависимости от выполненного условия осуществляется заполнение различных пользовательских полей.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.Metabase;

Public Class CSolrImportCustomValues: ISolrImportCustomValues
    Public Sub FillValues(MbObject: IMetabaseObject; Values: ISolrFieldValues);
    Begin
        //Указание значений пользовательских полей для объекта с заданным ключом
        If MbObject.Key = 19815 Then
            Values.FindById("TAG", SearchEngineTargetType.settSourceData).Value := "...";
        End If;
        //Если класс объекта соответствует табличному справочнику, то идёт индексация метаданных объектов
        If MbObject.ClassId = MetabaseObjectClass.KE_CLASS_STDDIM As Integer Then
            Values.FindById("COMMENTS", SearchEngineTargetType.settMbObject).Value := "...";
        End If;
    End Sub FillValues;
End Class;

См. также:

ISolrImportCustomValues | Системные и пользовательские поля