ISourceDataImportContext.ContainerKeys

Синтаксис Fore

ContainerKeys: Array;

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

ContainerKeys: Array;

Описание

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

Комментарии

При указании свойства ContainerKeys все дочерние источники данных будут индексироваться с параметрами по умолчанию:

Примечание. Индексация параметрических объектов не производится.

Пример Fore

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.Cubes;
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: ISourceDataImportContext;
    SolrContext: ISolrImportContext;
    Locales: Array = New Integer[1] = [LocaleCodeID.lcidRussian As Integer];
    Containers: Array = New Integer[2];
Begin
    MB := Params.Metabase;
    //Параметры поиска и индексации, заданные для репозитория
    SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Параметры индексации
    Schema.ImportProcessOptions.NeedSmartSearch := False;
    ImportExecutor := Schema.ImportExecutor[SearchEngineTargetType.settSourceData];
    ImportContext := ImportExecutor.CreateContext() As ISourceDataImportContext;
    SolrContext := ImportContext As ISolrImportContext;
    SolrContext.CleanType := SolrImportCleanType.sictSpecified;
    SolrContext.Locales := Locales;
    //Индексируемые объекты
    Containers[0] := MB.GetObjectKeyById("F_CUBES"As Integer;
    Containers[1] := MB.GetObjectKeyById("F_TSDB"As Integer;
    ImportContext.ContainerKeys := Containers;
    //Индексация
    ImportExecutor.Import(ImportContext);
End Sub;

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

См. также:

ISourceDataImportContext