Я пытаюсь использовать карты синонимов в Поиске Azure, и у меня возникла проблема. Я хочу, чтобы несколько слов и фраз отображались в одном поисковом запросе.
Другими словами, когда я ищу:
product 123, product0123, product 0123
я хочу, чтобы поиск возвращал результаты по фразе запроса:
product123.
После прочтения руководства все казалось красивым простой.
Я использую .Net Azure.Search SDK 5.0, поэтому сделал следующее:
var synonymMap = new SynonymMap
{
Name = "test-map",
Format = SynonymMapFormat.Solr,
Synonyms = "product 123, product0123, product 0123=>product123\n"
};
_searchClient.SynonymMaps.CreateOrUpdate(synonymMap);
и я использую карту в одном из полей поиска
index.Fields.First(x => x.Name == "Title").SynonymMaps = new[] {"test-map"};
Все идет нормально. Теперь, если я выполню поиск по запросу product0123, я получу результаты по запросу product123, как и ожидал. Но если я ищу фразу продукт 123 или продукт 0123, я получаю кучу нерелевантных результатов. Это почти как если бы карты синонимов не работали с элементами, состоящими из нескольких слов.
Итак, угадайте, мой вопрос: я неправильно использую карты синонимов или эти карты работают только с синонимами из одного слова?