【问题标题】:How to use Bing as the search engine on my site?如何在我的网站上使用 Bing 作为搜索引擎?
【发布时间】:2010-07-15 22:05:32
【问题描述】:

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

夫妻要求:

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

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

【问题讨论】:

    标签: c# asp.net search bing


    【解决方案1】:

    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 供您免费使用,但这是根据他们的条款,这意味着您将无法删除任何广告或更改页面的外观和感觉 - 世界上没有搭便车:)。

    【讨论】:

    • 嗨,当我删除 src 和 FORM 参数时,得到 0 个结果,当我至少返回 src 时,一切都很好,你认为会发生什么?,我的 url 是 bing.com/search?q=.net,仅此而已。 .. .
    • @JuanRuizdeCastilla 这个答案已经 11 岁了,自从我写它以来,他们可能已经改变了一些事情。完全取决于 Bing 来确定需要哪些参数或标头,如果您不包含它们,它们可能根本就没有进行搜索。当我单击您的链接时,我会得到结果,所以也许您需要进行一些实验。请记住,他们可能已经发布了带有文档界面的搜索 API,因此请查看可用的内容。
    • 谢谢你的回答 slugster,我在想有些细节在很多年里都不会改变:),不管我解决了什么,只需添加代理标题。
    【解决方案2】:

    您可以通过 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 2010-11-16
      • 2011-02-18
      • 1970-01-01
      • 2018-02-24
      • 2014-01-05
      • 2015-06-29
      • 1970-01-01
      相关资源
      最近更新 更多