Для индексации и поиска в репозитории предварительно необходимо получить доступ к поисковому сервису. Получить доступ можно двумя способами:
с помощью свойства ISharedParams.SearchEngine получить параметры поискового сервиса, используемого в репозитории.
с помощью метода ISearchEngineServiceFactory.CreateSearchEngine динамически создать экземпляр нового поискового сервиса.
Полученный поисковый сервис приведите к интерфейсу ISolrSearchEngineService:
Var
//...
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
//...
Begin
//...
MB := MetabaseClass.Active;
//Параметры поиска и индексации, заданные для репозитория
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
//...
При необходимости заполните коллекцию ISolrSearchEngineService.Cores, указав адреса и назначение для экземпляров Solr, которые будут использоваться в работе. Далее, используя свойство ISearchEngineService.SearchEngineSchema, можно получить доступ к основной функциональности поискового сервиса. В зависимости от выполняемой работы:
свойство ISearchEngineSchema.ImportExecutor вернет объект, используемый при индексации (доступно только в Fore.NET);
свойство ISearchEngineSchema.SearchExecutor вернет объект, используемый для поиска и получения результатов.
См. также: