0

Bing 是否有类似于 Google 自定义搜索或 Yahoo 的选项,我可以在其中使用 Bing 来支持我网站上的搜索结果?

情侣要求:

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

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

4

2 回答 2

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 url(使用 javascript)设置为您构建的搜索 url。

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

请注意,如果您想为页面设置样式,则必须从后面的代码中查询 Bing 并“抓取”结果并将它们放入您自己的页面中。(或者您可以将页面发回但在这样做之前修改其内容,但这样做会违反 Bing 的使用条款 - MS 提供 Bing 供您免费使用,但这是根据他们的条款,这意味着您将无法删除任何广告或更改页面的外观和感觉 - 这个世界上没有免费乘车:)。

于 2010-07-15T22:20:51.700 回答
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);
于 2010-07-15T22:19:20.983 回答