GetPhraseAnalysisByFieldName(Core: ISolrSearchEngineCore; FieldName: String; Phrase: String): Variant;
GetPhraseAnalysisByFieldName(Core: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCore; FieldName: String; Phrase: String): Object;
Core. Экземпляр Solr, с которым осуществляется работа.
FieldName. Наименование поля, по которому осуществляется анализ.
Phrase. Анализируемая фраза.
Метод GetPhraseAnalysisByFieldName анализирует указанную фразу по имени поля и возвращает массив, содержащий набор слов-синонимов.
Список экземпляров 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.GetPhraseAnalysisByFieldName(Core, "name", "Россйская Федерация");
Arr := Result As Array;
For Each v In arr Do
Debug.WriteLine(v);
End For;
End Sub UserProc;
При выполнении примера будет осуществлен анализ указанной фразы по полю с наименованием «name». Полученные слова-синонимы будут выведены в консоль среды разработки.
Необходимые требования и результат выполнения примера 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.GetPhraseAnalysisByFieldName(Core, "name", "Россйская Федерация");
Arr := Result As Array;
For Each v In arr Do
System.Diagnostics.Debug.WriteLine(v);
End For;
End Sub;
См. также: