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