如何在我的网站上使用Bing作为搜索引擎?

时间:2010-07-15 22:05:33

标签: c# asp.net search bing

Bing是否有类似于谷歌自定义搜索或雅虎的选项,我可以使用Bing来支持我网站上的搜索结果?

夫妻要求:

  • 使用ASP.NET站点(是一个.NET项目)
  • 在我自己的网站上托管搜索框和结果
  • 能够自定义结果的外观以匹配我的网站(完全控制是理想的,但我知道免费解决方案是不可能的)

我搜索了Bing自定义搜索,发现了这个:http://www.bing.com/siteowner/但这并不是我想要的。

2 个答案:

答案 0 :(得分:3)

Bing使用的查询字符串是:

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

(这是IE中Bing搜索提供程序的模板URL)。您只需在q参数后插入搜索字词即可。测试这个的一个好方法是实际执行搜索并在浏览器的地址框中查看URL:

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

您可以删除srcFORM参数,Bing会将这些参数用于统计目的。

要让结果显示在您自己的页面中,请使用iframe,为其指定ID,并将其src网址(使用javascript)设置为您构建的搜索网址。

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

请注意,如果您想要对页面进行样式设置,则必须从后面的代码中查询Bing并“刮擦”结果并将其放入您自己的页面中。 (或者您可以发回页面,但在此之前修改其内容,但这样做会违反Bing的使用条款 - MS供应Bing供您免费使用,但这是他们的条款,这意味着您将无法删除任何广告或更改页面的外观 - 这个世界上没有免费游乐设施:)。

答案 1 :(得分:1)

您可以注册网站搜索并通过jsonp查询Bing并通过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);