Я пытаюсь использовать карты синонимов в поиске Azure, и у меня возникла проблема. Я хочу, чтобы несколько слов и фраз отображались в одном поисковом запросе.
Другими словами, когда я ищу:
товар 123 , товар0123 , товар 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 , как я и ожидал. Но если я ищу фразу product 123 или product 0123 , я получаю кучу несущественных результатов. Как будто карты синонимов не работают с элементами из нескольких слов.
Итак, угадайте, мой вопрос: неправильно ли я использую карты синонимов, или эти карты работают только с синонимами из одного слова?