Microsoft Azure
Облачный бизнес
Вам понадобится

Microsoft Azure

Попробуйте платформу Microsoft Azure совершенно бесплатно.

Visual Studio

Бесплатная версия Visual Studio, позволяющая создавать приложения для платформы Microsoft Azure.

SDKs и дополнительные
инструменты

Инструменты разработки приложений для платформы Microsoft Azure.

Как мы используем расширенные компоненты 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.

azure add-ons

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

bing search api

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

bing search api free

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

azure add-ons

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

bing search api 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 stat

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

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

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

 

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