Как использовать Bing в качестве поисковой системы на моем сайте?

Есть ли в Bing опция, аналогичная пользовательскому поиску Google или Yahoo, где я могу использовать Bing для улучшения результатов поиска на своем сайте?

Требования к паре:

  • Работает с сайтом ASP.NET (это проект .NET)
  • Размещение окна поиска и результатов на моем собственном веб-сайте
  • Возможность настроить внешний вид результатов в соответствии с моим сайтом (полный контроль идеален, но я понимаю, что это невозможно с бесплатными решениями)

Я выполнил пользовательский поиск Bing и нашел это: http://www.bing.com/siteowner/ но это не совсем то, что я ищу.


person H1Man    schedule 15.07.2010    source источник


Ответы (2)


Строка запроса, которую использует Bing:

http://www.bing.com/search?q=&src=IE-SearchBox&FORM=IE8SRC

(это URL-адрес шаблона из поисковой системы Bing в IE). Все, что вам нужно сделать, это вставить условия поиска после параметра q. Хороший способ проверить это — выполнить поиск и увидеть URL-адрес в адресной строке браузера:

http://www.bing.com/search?q=how+to+query+bing&src=IE-SearchBox&FORM=IE8SRC

вы можете удалить параметры src и FORM, Bing будет использовать их только для статистических целей.

Чтобы результаты отображались на вашей собственной странице, используйте iframe, присвойте ему идентификатор и установите его URL-адрес src (с помощью javascript) на созданный вами URL-адрес поиска.

var frame = document.getElementById('mySearchFrame');
if (frame != null)
    frame.src = 'http://www.bing.com/search?q=' + mySearchTerms;

Обратите внимание, что если вы хотите стилизовать страницу, вам придется запросить Bing из исходного кода, «очистить» результаты и поместить их на свою собственную страницу. (Или вы можете просто отправить страницу обратно, но перед этим изменить ее содержимое, но сделать это будет нарушением условий использования Bing — MS предоставляет Bing для вас бесплатно, но это на их условиях, что означает вы не сможете удалить рекламу или изменить внешний вид страницы - в этом мире нет бесплатных поездок :).

person slugster    schedule 15.07.2010
comment
Привет, когда я удаляю параметры src и FORM, приходит 0 результатов, когда я возвращаю хотя бы src, все хорошо, как вы думаете, что это происходит? Мой URL-адрес bing.com/search?q=.net, больше ничего... . - person Juan Ruiz de Castilla; 01.05.2021
comment
@JuanRuizdeCastilla, этому ответу 11 лет, они, вероятно, что-то изменили с тех пор, как я его написал. Bing полностью определяет, какие параметры или заголовки необходимы, и может случиться так, что они просто не будут выполнять поиск, если вы их не включите. Когда я нажимаю на вашу ссылку, я получаю результаты, поэтому, возможно, вам нужно немного поэкспериментировать. Имейте в виду, что они, вероятно, опубликовали поисковый API с задокументированным интерфейсом, поэтому посмотрите, что доступно. - person slugster; 03.05.2021
comment
спасибо за ваш ответ, slugster, я думал, что есть некоторые детали, которые не меняются слишком много лет :), что бы я ни решил, просто добавьте заголовок агента. - person Juan Ruiz de Castilla; 03.05.2021

Вы можете подписаться на поиск по сайту и запрашивать Bing через jsonp и отображать результаты через javascript (точный код не проверен)

 function searchDone(results) {
    if(results.SearchResponse.Web.Results && results.SearchResponse.Web.Results.length > 0) {
       for (var i = 0; i < results.SearchResponse.Web.Results.length; i++) {
            result = results.SearchResponse.Web.Results[i];
            item = document.createElement('li');
            item.innerHTML = '<a href="' + result.Url + '">' + AntiXssLibrary.HtmlEncode(result.Title.replace(/\uE000/g, "").replace(/\uE001/g, "")) + '</a>' + '<blockquote>' + AntiXssLibrary.HtmlEncode(result.Description.replace(/\uE000/g, "").replace(/\uE001/g, "")) + '</blockquote>';
            // append child to document somewhere
        }
    }
 }



 var serviceURI = "http://api.search.live.net/json.aspx?JsonType=callback&JsonCallback=searchDone&sources=web&Options=EnableHighlighting";
 var appid = "&Appid=YOUR_BING_APP_ID";      
 var query = "&query=site:http://YOURDOMAIN.com/ <%=Request.Querystring["query"] %>";

 var fullUri = serviceURI + appid + query;
 var head = document.getElementsByTagName('head');
 var script = document.createElement('script');
 script.type = "text/javascript";
 script.src = fullUri;
 head[0].appendChild(script);
person BC.    schedule 15.07.2010