ImportProcessOptions: ISolrImportProcessOptions;
ImportProcessOptions: Prognoz.Platform.Interop.BISearch.ISolrImportProcessOptions;
Свойство ImportProcessOptions возвращает параметры, используемые при индексации данных/метаданных.
Для выполнения примера предполагается наличие в репозитории сборки с идентификатором «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.
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;
См. также: