GetPhraseAnalysisByFieldType(Core: ISolrSearchEngineCore; FieldType: String; Phrase: String): Variant;
GetPhraseAnalysisByFieldType(Core: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCore; FieldType: String; Phrase: String): Object;
Core. Экземпляр Solr, с которым осуществляется работа.
FieldType. Тип поля, по которому осуществляется анализ.
Phrase. Анализируемая фраза.
Метод GetPhraseAnalysisByFieldType анализирует указанную фразу по типу поля и возвращает массив, содержащий набор слов-синонимов.
Список экземпляров Solr можно получить в свойстве ISolrSearchEngineService.Cores.
Предполагается, что репозиторий настроен на работу с поисковым сервисом на базе Apache Solr. Подключите системные сборки: BISearch, Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Core: ISolrSearchEngineCore;
Operations: ISolrOperations;
Result, v: Variant;
Arr: Array;
Begin
MB := MetabaseClass.Active;
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Core := SearchEngine.Cores.Item(0);
Operations := New SolrOperations.Create;
Result := Operations.GetPhraseAnalysisByFieldType(Core, "synonym_searcher", "Россйская Федерация");
Arr := Result As Array;
For Each v In arr Do
Debug.WriteLine(v);
End For;
End Sub UserProc;
При выполнении примера будет осуществлен анализ указанной фразы по полю с назначением «synonym_searcher». Полученные слова-синонимы будут выведены в консоль среды разработки.
Необходимые требования и результат выполнения примера 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;
Core: ISolrSearchEngineCore;
Operations: ISolrOperations = New SolrOperationsClass();
Result, v: Object;
Arr: Array;
Begin
MB := Params.Metabase;
SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Core := SearchEngine.Cores.Item[0];
Result := Operations.GetPhraseAnalysisByFieldType(Core, "synonym_searcher", "Россйская Федерация");
Arr := Result As Array;
For Each v In arr Do
System.Diagnostics.Debug.WriteLine(v);
End For;
End Sub;
См. также: