Как мы используем расширенные компоненты ADD-ONS из магазина Microsoft Azure Store. Умный поиск и Bing Search API

Немаловажной частью при разработке мобильных приложений является поисковый механизм, позволяющий искать информацию, не взирая на морфологию слова и ошибки в написании слов. Если морфологический поиск мы отдаем на откуп функции Full-TextSearch SQL Server-а (SQL Server установлен на виртуальной машине в Azure), то для распознавания ошибок в поисковом слове требуется большая база накопленных ошибочных значений, которая доступна только большим поисковым гигантам. В решение этой задачи нам опять помог Microsoft Azure.

Мы решили использовать следующую логику: если поиск с помощью встроенных механизмов Full-TextSearch SQL Server-а не дает результатов, то пропускать поисковую строку через Bing Search API для получения похожих результатов(аналог функции возможно вы искали ...). Если API возвращает новые варианты, то повторно делать поиск уже по исправленным данным.

Такая логика позволяет находить результаты по таким поисковым запросам как:

прфоратор или шурповерт в разделе стройматериалы.

Ниже описаны шаги для подключения Bing Search API.

Для подключения Bing Search API необходимо выбрать раздел ADD-ONS в портале Microsoft Azure.

Выбрав функцию ADD (Добавить) необходимо найти Bing Search API в списке доступных компонентов.

Для старта можно попробовать бесплатное решение (5000 запросов в месяц).

Подтвердив установку, вы увидите компонент в списке ADD-ONS.

Для работы с Bing Search API нам потребуется Primary Access Key.

а также класс BingSearchContainer.cs (этот класс предоставлен разработчиками Bing Search API для более быстрой интеграции с их сервисом).

Сам код для вызова API очень прост:

//Ссылка для работы с Bing Search const string rootUri = "https://api.datamarket.azure.com/Bing/Search"; //Ключ для работы с API const string accountKey = "accountKey"; //Локализация const string market = "ru-ru"; //Инициализация контейнера var bingContainer = new BingSearchContainer(new Uri(rootUri)) { Credentials = new NetworkCredential(accountKey, accountKey) }; //Формирование запроса, где searchText - наш поисковый запрос //Ключевой метод SpellingSuggestions var spellQuery = bingContainer.SpellingSuggestions(searchText, null, market, null, null, null); var spellResults = spellQuery.Execute(); if (spellResults != null) { //Работаем с похожими результатами foreach (var result in spellResults) { //Используем результаты для дальнейшего выполнения } }

Статистику вызовов Bing Search API можно смотреть в портале Azure.

В конце статьи хочу отметить, что поиск исправленных вариантов для запроса - это лишь малая часть возможностей Bing Search API. Подробнее про Bing Search API можно почитать здесь.

Автор статьи: Денис Кретов.

Оригинал статьи.