Cores: ISolrSearchEngineCores;
Cores: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCores;
Свойство Cores возвращает коллекцию экземпляров Solr.
Предполагается, что репозиторий настроен на работу с поисковым сервисом на базе Apache Solr. Подключите системные сборки: BISearch, Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Cores: ISolrSearchEngineCores;
Core: ISolrSearchEngineCore;
i: Integer;
Begin
MB := MetabaseClass.Active;
//Получение параметров поиска и индексации
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Cores := SearchEngine.Cores;
//Просмотр списка доступных экземпляров Solr
For i := 0 To Cores.Count - 1 Do
Core := Cores.Item(i);
Select Case (Core.Type As Integer)
Case 0: Debug.Write("Поиск по метаданным. URL: ");
Case 1: Debug.Write("Поиск по данным. URL: ");
Case 2: Debug.Write("Поиск по свободным измерениям. URL: ");
End Select;
Debug.WriteLine(Core.Uri + " (Идентификатор языка: " + Core.Locale.ToString + ')');
End For;
End Sub UserProc;
При выполнении примера будет получен список экземпляров Solr, заданных в текущих настройках поискового сервиса репозитория. Назначение и URL-адрес каждого экземпляра будут выведены в консоль среды разработки.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.KeFore;
Imports Prognoz.Platform.Interop.Metabase;
Public Sub Main(Params: StartParams);
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Cores: ISolrSearchEngineCores;
Core: ISolrSearchEngineCore;
i: Integer;
Begin
MB := Params.Metabase;
//Получение параметров поиска и индексации
SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Cores := SearchEngine.Cores;
//Просмотр списка доступных экземпляров Solr
For i := 0 To Cores.Count - 1 Do
Core := Cores.Item[i];
Select Case (Core.Type As Integer)
Case 0: System.Diagnostics.Debug.Write("Поиск по метаданным. URL: ");
Case 1: System.Diagnostics.Debug.Write("Поиск по данным. URL: ");
Case 2: System.Diagnostics.Debug.Write("Поиск по свободным измерениям. URL: ");
End Select;
System.Diagnostics.Debug.WriteLine(Core.Uri + " (Идентификатор языка: " + Core.Locale.ToString() + ')');
End For;
End Sub;
См. также: