ISourceDataImportDestinationInfos.Add

Синтаксис Fore

Add(Destination: ICubeModelDestination): ISourceDataImportDestinationInfo;

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

Add(Destination: Prognoz.Platform.Interop.Cubes.ICubeModelDestination): Prognoz.Platform.Interop.BISearch.ISourceDataImportDestinationInfo;

Параметры

Destination. Вариант отображения источника данных, для которого необходимо добавить настройки индексации.

Описание

Метод Add добавляет настройки индексации для указанного варианта отображения источника данных.

Пример Fore

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.Dimensions;
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];
    Cube: ICubeModel;
    CubeDimensions: ICubeModelDimensions;
    CubeDimension: IDimensionModel;
    SourceInfo: ISourceDataImportInfo;
    DestinationInfo: ISourceDataImportDestinationInfo;
    DimSS: IDimSelectionSet;
    DimS: IDimSelection;
    i: Integer;
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;
    //Индексируемый объект
    Cube := MB.ItemById["STD_CUBE"].Bind() As ICubeModel;
    CubeDimensions := Cube.Destinations.DefaultDestination.Dimensions;
    SourceInfo := ImportContext.SourceInfos.Add(Cube);
    DestinationInfo := SourceInfo.DestinationInfos.Add(Cube.Destinations.DefaultDestination);
    //Параметры индексации варианта отображения
    DestinationInfo.GroupByDl := True;
    DestinationInfo.ImportMode := SourceImportMode.simFull;
    For i := 0 To CubeDimensions.Count - 1 Do
        CubeDimension := CubeDimensions.Item[i];
        Select Case (CubeDimension As IMetabaseObject).Id
            Case "FACTS": DestinationInfo.FreeDimensions.Add(CubeDimension);
            Case "INDICATORS""COUNTRY": DestinationInfo.KeyWordsDimensions.Add(CubeDimension);
        End Select;
    End For;
    //Установка отметки по измерениям
    DimSS := DestinationInfo.SelectionSet;
    For Each DimS In DimSS Do
        Select Case DimS.Dimension.Ident
            Case "FACTS""INDICATORS":
                DimS.SelectAll();
            Case "COUNTRY":
                DimS.SelectElement(0False);
                DimS.SelectElement(1False);
        End Select;
    End For;
    //Индексация
    ImportExecutor.Import(ImportContext);
End Sub;

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

См. также:

ISourceDataImportDestinationInfos