Поиск от Bing API – это просто и быстро! Сегодня я хотел бы поделиться с вами некоторыми нюансами разработки веб-поиска.
Шаг 1:
Регистрируемся и получаем ключ API на странице www.bing.com/developers/appids.aspx
Шаг 2:
Определяемся с основными параметрами поиска, а именно:
Дополнительные параметры зависят от типа источника поиска. Подробнее об этом в документации
Шаг 3:
Формируем строку запроса и обрабатываем полученные данные. Например:
Полученные результаты в данном случае будут отданы сервером в виде XML, содержащим префиксы в пространстве имен:
Если поисковый запрос был удачно выполнен, результаты будут содержаться в массиве $resultsearch->Web->Results->WebResult, в противном случае сообщение об ошибке будет содержаться в массиве $sxe->Errors->Error
Чего нет в документации, но о чем важно знать:
Поиск Bing API может искать только по определенному сайту. Например, для поиска только на сайте habrahabr.ru, приведенный выше поисковый запрос надо немного модифицировать:
Также хотелось бы сказать, что поиск не всегда корректно обрабатывает кириллические запросы. Например, если включить в поисковый запрос фильтрацию непристойного содержания, как оказывается, что поисковик практически не фильтрует контент, если запрос на русском языке:
Вывод:
Конечно, поиск на кириллице от Bing пока не позволяет полноценно насладиться всеми фишками и вкусностями, описанными в документации. Но хотелось бы сказать, что только применение на практике позволит вам сравнить качество морфологического поиска и скорость индексации контента сайта. Лично мне пришлось обратить внимание на Bing, модернизируя поиск на одном из сайтов с технической документацией
P.S.: Простейший пример Bing API+PHP для поиска по сайту: docs.google.com/View?id=dmwh7bn_10fhhxgtfs
Шаг 1:
Регистрируемся и получаем ключ API на странице www.bing.com/developers/appids.aspx
Шаг 2:
Определяемся с основными параметрами поиска, а именно:
- Поисковый запрос (URL-кодирование поискового запроса в соответствии с RFC 1738, в кодировке текста UTF-8)
- Тип источника (web, images, video, etc…)
- Количество результатов за один запрос (максимум 50)
- Смещение на нужную позицию результатов поиска от начала (не более 1000)
- Формат данных, ожидаемых от поискового сервера (xml, json, soap)
Дополнительные параметры зависят от типа источника поиска. Подробнее об этом в документации
Шаг 3:
Формируем строку запроса и обрабатываем полученные данные. Например:
$url = 'http://api.bing.net/xml.aspx?Appid=' .$Appid. '&query=' .rawurlencode(iconv("CP1251", "UTF-8", searchtext)). '&sources=web&web.count=10&web.offset=0&web.filetype=html';
$searchpage = file_get_contents($url);
Полученные результаты в данном случае будут отданы сервером в виде XML, содержащим префиксы в пространстве имен:
$sxe = new SimpleXMLElement($data);
$resultsearch = $sxe->children('web', TRUE);
Если поисковый запрос был удачно выполнен, результаты будут содержаться в массиве $resultsearch->Web->Results->WebResult, в противном случае сообщение об ошибке будет содержаться в массиве $sxe->Errors->Error
Чего нет в документации, но о чем важно знать:
Поиск Bing API может искать только по определенному сайту. Например, для поиска только на сайте habrahabr.ru, приведенный выше поисковый запрос надо немного модифицировать:
$url = 'http://api.bing.net/xml.aspx?Appid=' .$Appid. '&query=' .rawurlencode(iconv("CP1251", "UTF-8", searchtext)). '+site:habrahabr.ru&sources=web&web.count=10&web.offset=0&web.filetype=html';
Также хотелось бы сказать, что поиск не всегда корректно обрабатывает кириллические запросы. Например, если включить в поисковый запрос фильтрацию непристойного содержания, как оказывается, что поисковик практически не фильтрует контент, если запрос на русском языке:
$url = 'http://api.bing.net/xml.aspx?Appid='.$Appid.'&query='.rawurlencode(iconv("CP1251","UTF-8",'секс')).'&sources=web&web.count=50&web.offset=0&Adult=Strict';
* This source code was highlighted with Source Code Highlighter.
Вывод:
Конечно, поиск на кириллице от Bing пока не позволяет полноценно насладиться всеми фишками и вкусностями, описанными в документации. Но хотелось бы сказать, что только применение на практике позволит вам сравнить качество морфологического поиска и скорость индексации контента сайта. Лично мне пришлось обратить внимание на Bing, модернизируя поиск на одном из сайтов с технической документацией
P.S.: Простейший пример Bing API+PHP для поиска по сайту: docs.google.com/View?id=dmwh7bn_10fhhxgtfs