IMbObjectsImportContext.ClassIds

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

ClassIds: Array;

Описание

Свойство ClassIds определяет массив, содержащий идентификаторы классов индексируемых объектов репозитория.

Комментарии

В качестве значения свойства необходимо указать целочисленный массив. Каждый элемент массива содержит одно из доступных значений перечисления MetabaseObjectClass.

Пример Fore

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

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории настроек для индексации и поиска на русском языке.

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    SharedParams: ISharedParams;
    SearchEngine: ISolrSearchEngineService;
    Schema: ISolrSearchEngineSchema;
    ImportExecutor: IImportExecutor;
    ImportContext: IMbObjectsImportContext;
    SolrContext: ISolrImportContext;
    Locales: Array = New Integer[1] = [LocaleCodeID.lcidRussian As Integer];
    ObjectClasses: Array Of UInteger;
Begin
    MB := Params.Metabase;
    //Параметры поиска и индексации, заданные для репозитория
    SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Параметры индексации
    ImportExecutor := Schema.ImportExecutor[SearchEngineTargetType.settMbObject];
    ImportContext := ImportExecutor.CreateContext() As IMbObjectsImportContext;
    SolrContext := ImportContext As ISolrImportContext;
    SolrContext.CleanType := SolrImportCleanType.sictNone;
    SolrContext.Locales := Locales;
    //Индексируемые объекты
    ObjectClasses := New UInteger[2];
    ObjectClasses[0] := MetabaseObjectClass.KE_CLASS_STDCUBE;
    ObjectClasses[1] := MetabaseObjectClass.KE_CLASS_STDDIM;
    ImportContext.ClassIds := ObjectClasses;
    //Индексация
    ImportExecutor.Import(ImportContext);
End Sub;

При выполнении примера будет создан контекст, необходимый для индексации метаданных объектов репозитория. В настройках контекста будет указан язык, на котором осуществляется индексация, и классы индексируемых объектов: стандартные кубы и табличные справочники. После указания всех настроек будет произведена индексация метаданных объектов.

См. также:

IMbObjectsImportContext