ContainerKeys: Array;
ContainerKeys: Array;
Свойство ContainerKeys определяет массив ключей объектов репозитория, для которых необходимо проиндексировать все дочерние объекты.
При указании свойства ContainerKeys все дочерние источники данных будут индексироваться с параметрами по умолчанию:
Используется вариант отображения источника по умолчанию;
В списке измерений отсутствуют свободные измерения, кроме календарного;
Для измерений задана максимальная отметка элементов.
Примечание. Индексация параметрических объектов не производится.
Важно. В связи с имеющимися особенностями реализации языка Fore и использованием мнопоточного режима при индексации, индексация с использованием кода на Fore не поддерживается. Осуществляйте разработку на языке 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;
При выполнении примера будет создан контекст, необходимый для индексации элементов измерений источников данных. В настройках будет указан язык, на котором осуществляется индексация, и две папки, в которых будут проиндексированы все объекты. После указания всех настроек будет произведена индексация.
См. также: