ISolrSearchEngineSchema.ImportProcessOptions

Синтаксис Fore

ImportProcessOptions: ISolrImportProcessOptions;

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

ImportProcessOptions: Prognoz.Platform.Interop.BISearch.ISolrImportProcessOptions;

Описание

Свойство ImportProcessOptions возвращает параметры, используемые при индексации данных/метаданных.

Пример Fore

Для выполнения примера предполагается наличие в репозитории сборки с идентификатором «CUSTOMVALUES» (для Fore.NET примера - .NET-сборки «CUSTOMVALUESNET»). В сборке реализован класс «CSolrImportCustomValues», используемый для заполнения значений пользовательских полей при индексации. Класс должен содержать реализацию интерфейса ISolrImportCustomValues. Подключите системные сборки: BISearch, Fore, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    SharedParams: ISharedParams;
    SearchEngine: ISolrSearchEngineService;
    Schema: ISolrSearchEngineSchema;
    Options: ISolrImportProcessOptions;
    Binding: ISolrImportCustomBinding;
Begin
    MB := MetabaseClass.Active;
    SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Изменение настроек
    Options := Schema.ImportProcessOptions;
    Options.BlockSize := 1000;
    Options.QueryMaxSize := 1048576;
    Options.ThreadsCount := 4;
    Options.NeedSmartSearch := True;
    Binding := Options.ImportBinding;
    Binding.Assembly := MB.ItemById("CUSTOMVALUES");
    Binding.ClassName := "CSolrImportCustomValues";
    //Сохранение
    SharedParams.SearchEngine := SearchEngine;
    (SharedParams As IMetabaseObject).Save;
End Sub UserProc;

При выполнении примера будут определены настройки индексации в репозитории: указаны значения, используемые при построении матрицы, задан максимальный размер формируемого XML-документа, который будет передаваться для индексации на сервер Apache Solr, а также указаны сборка и класс, используемые для обработки пользовательских полей.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.BISearch;
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;
    Options: ISolrImportProcessOptions;
    Binding: ISolrImportCustomBinding;
Begin
    MB := Params.Metabase;
    SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Изменение настроек
    Options := Schema.ImportProcessOptions;
    Options.BlockSize := 1000;
    Options.QueryMaxSize := 1048576;
    Options.ThreadsCount := 4;
    Options.NeedSmartSearch := True;
    Binding := Options.ImportBinding;
    Binding.Assembly := MB.ItemById["CUSTOMVALUESNET"];
    Binding.ClassName := "CSolrImportCustomValues";
    //Сохранение
    SharedParams.SearchEngine := SearchEngine;
    (SharedParams As IMetabaseObject).Save();
End Sub;

См. также:

ISolrSearchEngineSchema