Bing 是否有类似于 Google 自定义搜索或 Yahoo 的选项,我可以在其中使用 Bing 来支持我网站上的搜索结果?
情侣要求:
- 适用于 ASP.NET 站点(是一个 .NET 项目)
- 在我自己的网站上托管搜索框和结果
- 能够自定义结果的外观以匹配我的网站(完全控制是理想的,但我知道使用免费解决方案是不可能的)
我搜索了 Bing 自定义搜索并找到了这个: http: //www.bing.com/siteowner/但这并不是我想要的。
Bing 是否有类似于 Google 自定义搜索或 Yahoo 的选项,我可以在其中使用 Bing 来支持我网站上的搜索结果?
情侣要求:
我搜索了 Bing 自定义搜索并找到了这个: http: //www.bing.com/siteowner/但这并不是我想要的。
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
您可以删除src
和FORM
参数,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 供您免费使用,但这是根据他们的条款,这意味着您将无法删除任何广告或更改页面的外观和感觉 - 这个世界上没有免费乘车:)。
您可以通过 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);