IMbObjectsImportContext.ContainerKeys

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

ContainerKeys: Array;

Описание

Свойство ContainerKeys определяет массив ключей объектов репозитория, для которых необходимо проиндексировать все дочерние объекты.

Пример Fore

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

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории папки с идентификатором «F_CUBES», в которой хранятся кубы, и папки «F_TSDB», в которой хранятся базы данных временных рядов. В самом репозитории определены настройки для индексации и поиска на русском языке.

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];
    Containers: 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;
    //Индексируемые объекты
    Containers := New UInteger[2];
    Containers[0] := MB.GetObjectKeyById("F_CUBES");
    Containers[1] := MB.GetObjectKeyById("F_TSDB");
    ImportContext.ContainerKeys := Containers;
    //Индексация
    ImportExecutor.Import(ImportContext);
End Sub;

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

См. также:

IMbObjectsImportContext