IImportExecutor.Import

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

Import(Context: Prognoz.Platform.Interop.BISearch.ISearchEngineImportContext);

Параметры

Context. Контекст с параметрами индексации.

Описание

Метод Import осуществляет индексацию источников данных.

Комментарии

При индексации происходит создание необходимых документов и сохранение в них индексированных данных там, где развернут поисковый сервис.

Пример Fore

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

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории параметрического стандартного куба с идентификатором «STD_CUBE». В кубе созданы и настроены на управление вложенными объектами два параметра с идентификаторами «YEAR_START» и «YEAR_FINISH». В самом репозитории определены настройки для индексации и поиска на русском языке.

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];
    MObj: IMetabaseObject;
    Cube: ICubeModel;
    ParamValues: IMetabaseObjectParamValues;
    SourceInfo: ISourceDataImportInfo;
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;
    //Индексируемый объект
    MObj := MB.ItemById["STD_CUBE"].Bind();
    Cube := MObj As ICubeModel;
    SourceInfo := ImportContext.SourceInfos.Add(Cube);
    SourceInfo.DestinationInfos.Add(Cube.Destinations.DefaultDestination);
    ParamValues := MObj.Params.CreateEmptyValues();
    ParamValues.FindById("YEAR_START").Value := 2000;
    ParamValues.FindById("YEAR_FINISH").Value := 2010;
    SourceInfo.Params := ParamValues;
    //Индексация
    ImportExecutor.Import(ImportContext);
End Sub;

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

См. также:

IImportExecutor