Подготовка файла с синонимами

BI-поиск включает в себя возможность учета слов-синонимов. Для использования этой возможности необходимо предварительно подготовить файл synonyms.txt, который был скопирован при настройке экземпляров Solr. Apache Solr использует один общий файл synonyms.txt, содержащий список синонимов на всех языках.

Файл synonyms.txt состоит из множества строк. Каждый комплект слов-синонимов указывается в отдельной строке. Слова (сочетания слов) разделяются между собой запятой. Для возможности поиска слов в различных падежах в Apache Solr используются специальные алгоритмы поиска, для их использования слова-синонимы должны указываться без окончаний. Чтобы подготовить слова в том виде, в котором их сможет использовать Apache Solr, можно воспользоваться двумя способами:

  1. Использовать анализатор Apache Solr:

  2. Использовать ядро Fore, предназначенное для работы с Apache Solr: Для анализа и получения необходимой комбинации слов-синонимов можно воспользоваться следующей функцией:
    Function AnalysisString(Phrase: String): Array;
    Const
        CoreURL = "http://localhost:8080/solr-4.4.0/SourceData_ru1";
    Var
        MB: IMetabase;
        SearchFactory: ISearchEngineServiceFactory;
        SolrService: ISolrSearchEngineService;
        Core: ISolrSearchEngineCore;
        SolrOp: ISolrOperations;
        Result: Array Of Variant;
    Begin
        MB := MetabaseClass.Active;
        //Параметры механизма BI-поиска
        SearchFactory := New SearchEngineServiceFactory.Create;
        SolrService := SearchFactory.CreateSearchEngine(MB) As ISolrSearchEngineService;
        Core := SolrService.Cores.Add(CoreURL, SearchEngineTargetType.SourceData, LocaleCodeID.Russian);
        //Объект для работы с Apache Solr
        SolrOp := New SolrOperations.Create;
        //Анализ слов-синонимов
        Result := SolrOp.GetPhraseAnalysisByFieldType(Core, "synonyms_transformer", Phrase) As Array;
        //Возврат результата
        Return Result;
    End Function AnalysisString;

В качестве входного параметра функции передается набор слов-синонимов, на выходе будет получен массив обработанных слов. Доработав код необходимым образом слова из массива можно сохранить непосредственно в файл synonyms.txt или в какое-либо другое хранилище.

См. также:

Установка и настройка программного обеспечения