Cores: ISolrSearchEngineCores;
Cores: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCores;
The Cores property returns collection of the Solr instances.
It is supposed that the repository is set to work with search service based on Apache Solr. Connect the BISearch, Fore, Metabase system assemblies.
Sub UserProc;
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Cores: ISolrSearchEngineCores;
Core: ISolrSearchEngineCore;
i: Integer;
Begin
MB := MetabaseClass.Active;
//Get search and indexing parameters
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Cores := SearchEngine.Cores;
//View list of available Solr instances
For i := 0 To Cores.Count - 1 Do
Core := Cores.Item(i);
Select Case (Core.Type As Integer)
Case 0: Debug.Write("Search by metadata. URL: ");
Case 1: Debug.Write("Search by data. URL: ");
Case 2: Debug.Write("Search by free dimensions. URL: ");
End Select;
Debug.WriteLine(Core.Uri + " (Language identifier: " + Core.Locale.ToString + ')');
End For;
End Sub UserProc;
After executing the example the list of the Solr instances set in currents settings of repository search service will be received. The purpose and the URL address of each instance will be displayed to the development environment console.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
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;
//Get search and indexing parameters
SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Cores := SearchEngine.Cores;
//View list of available Solr instances
For i := 0 To Cores.Count - 1 Do
Core := Cores.Item[i];
Select Case (Core.Type As Integer)
Case 0: System.Diagnostics.Debug.Write("Search by metadata. URL: ");
Case 1: System.Diagnostics.Debug.Write("Search by data. URL: ");
Case 2: System.Diagnostics.Debug.Write("Search by free dimensions. URL: ");
End Select;
System.Diagnostics.Debug.WriteLine(Core.Uri + " (Language identifier: " + Core.Locale.ToString() + ')');
End For;
End Sub;
See also: