Demo link: http://code.msdn.microsoft.com/windowsazure/How-to-use-bing-search-API-4c8b287e

Aspx Code:

 <form id="form1" runat="server">
<div>
<asp:TextBox ID="tbQueryString" runat="server" Height="43px" Width="584px"></asp:TextBox>
&nbsp;<br />
<asp:Button ID="btnWebSearch" runat="server"
Text="Web Results" onclick="btnWebSearch_Click" />
&nbsp;<asp:Button ID="btnImageSearch" runat="server" Text="Image Search"
onclick="btnImageSearch_Click" />
&nbsp;<asp:Button ID="btnVideosSearch" runat="server"
Text="Videos Results" onclick="btnVideosSearch_Click" />
&nbsp;<asp:Button ID="btnNewsSearch" runat="server" Text="News Search"
onclick="btnNewsSearch_Click" />
&nbsp;<asp:Button ID="btnSpellingSuggestionSearch" runat="server" Text="Spelling Suggestion Search" onclick="btnSpellingSuggestionSearch_Click"
/>
&nbsp;<asp:Button ID="btnRelatedSearch" runat="server" Text="RelatedSearch" onclick="btnRelatedSearch_Click"
/>
&nbsp;<asp:Button ID="btnCompositeSearch" runat="server" Text="Composite Search"
Width="148px" onclick="btnCompositeSearch_Click" />
&nbsp;<br />
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
</div>
</form>

Code Behind:

using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using System.Net;
using System.Text; namespace CSAzureMarketPlaceBingSearch
{
public partial class Default : System.Web.UI.Page
{
// Create a Bing container.
private const string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
//TODO:Change this account key to yours.
//Example:
//AgiyQkKH0B/1OTwW/zXu3hGNc2mU2OGintltk1IqajY=
private const string AccountKey = "[Account key]"; string market = "en-us";
protected void Page_Load(object sender, EventArgs e)
{ } /// <summary>
/// Search for web only.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnWebSearch_Click(object sender, EventArgs e)
{
Repeater rptResult=new Repeater(); // This is the query expression.
string query = tbQueryString.Text;
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 10 results.
var webQuery =bingContainer.Web(query, null, null, market, null, null, null, null);
webQuery = webQuery.AddQueryOption("$top", ); // Run the query and display the results.
var webResults = webQuery.Execute();
Label lblResults = new Label();
StringBuilder searchResult = new StringBuilder(); foreach (Bing.WebResult wResult in webResults)
{
searchResult.Append(string.Format("<a href={2}>{0}</a><br /> {1}<br /> {2}<br /><br />",
wResult.Title,
wResult.Url,
wResult.Description)); }
lblResults.Text = searchResult.ToString();
Panel1.Controls.Add(lblResults); } /// <summary>
/// Search for image only.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImageSearch_Click(object sender, EventArgs e)
{
Repeater rptResult = new Repeater();
string query = tbQueryString.Text; // Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 10 results.
var imageQuery =
bingContainer.Image(query, null, market, null, null, null, null);
imageQuery = imageQuery.AddQueryOption("$top", ); // Run the query and display the results.
var imageResults = imageQuery.Execute();
StringBuilder searchResult = new StringBuilder();
Label lblResults = new Label(); foreach (Bing.ImageResult iResult in imageResults)
{
searchResult.Append(string.Format("Image Title: <a href={1}>{0}</a><br />Image Url: {1}<br /><br />",
iResult.Title,
iResult.MediaUrl));
}
lblResults.Text = searchResult.ToString();
Panel1.Controls.Add(lblResults);
} /// <summary>
/// Search for video only.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnVideosSearch_Click(object sender, EventArgs e)
{
Repeater rptResult = new Repeater();
string query = tbQueryString.Text; // Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 10 results.
var mediaQuery =
bingContainer.Video(query, null, market, null, null, null, null, null);
mediaQuery = mediaQuery.AddQueryOption("$top", ); // Run the query and display the results.
var mediaResults = mediaQuery.Execute();
Label lblResults = new Label();
StringBuilder searchResult = new StringBuilder(); foreach (Bing.VideoResult vResult in mediaResults)
{
searchResult.Append(string.Format("Video Tile: <a href={1}>{0}</a><br />Video URL: {1}<br />",
vResult.Title,
vResult.MediaUrl));
}
lblResults.Text=searchResult.ToString();
Panel1.Controls.Add(lblResults);
} /// <summary>
/// Search for news only.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNewsSearch_Click(object sender, EventArgs e)
{
Repeater rptResult = new Repeater(); string query = tbQueryString.Text;
// Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Get news for science and technology.
string newsCat = "rt_ScienceAndTechnology"; // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 10 results.
var newsQuery =
bingContainer.News(query, null, market, null, null, null, null, newsCat, null);
newsQuery = newsQuery.AddQueryOption("$top", ); // Run the query and display the results.
var newsResults = newsQuery.Execute(); StringBuilder searchResult = new StringBuilder();
Label lblResults = new Label(); foreach (Bing.NewsResult nResult in newsResults)
{
searchResult.Append(string.Format("<a href={0}>{1}</a><br /> {2}<br /> {3}&nbsp;{4}<br /><br />",
nResult.Url,
nResult.Title,
nResult.Description,
nResult.Source,
nResult.Date));
}
lblResults.Text = searchResult.ToString(); Panel1.Controls.Add(lblResults);
} /// <summary>
/// Search with spelling suggestion.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSpellingSuggestionSearch_Click(object sender, EventArgs e)
{
string query = tbQueryString.Text; // Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query.
var spellQuery =
bingContainer.SpellingSuggestions(query, null, market, null, null, null); // Run the query and display the results.
var spellResults = spellQuery.Execute(); List<Bing.SpellResult> spellResultList = new List<Bing.SpellResult>(); foreach (var result in spellResults)
{
spellResultList.Add(result);
} Label lblResults = new Label();
if (spellResultList.Count>)
{
lblResults.Text = string.Format(
"Spelling suggestion is <strong>{0}</strong>",
spellResultList[].Value);
}
else
{
lblResults.Text = "No spelling suggestion. Type some typo key words for suggestion for example \"xbx gamess\"";
}
Panel1.Controls.Add(lblResults); } /// <summary>
/// Related search.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRelatedSearch_Click(object sender, EventArgs e)
{
string query = tbQueryString.Text; // Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 10 results.
var relatedQuery =
bingContainer.RelatedSearch(query, null, market, null, null, null);
relatedQuery = relatedQuery.AddQueryOption("$top", ); // Run the query and display the results.
var relatedResults = relatedQuery.Execute(); List<Bing.RelatedSearchResult> relatedSearchResultList = new List<Bing.RelatedSearchResult>();
Label lblResults = new Label();
StringBuilder searchResults=new StringBuilder();
foreach (Bing.RelatedSearchResult rResult in relatedResults)
{
searchResults.Append(string.Format("<a href={1}>{0}</a><br /> {1}<br />",
rResult.Title,
rResult.BingUrl));
}
lblResults.Text=searchResults.ToString();
Panel1.Controls.Add(lblResults);
} /// <summary>
/// Composite search.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCompositeSearch_Click(object sender, EventArgs e)
{
string query = tbQueryString.Text;
// Create a Bing container.
string rootUrl = "https://api.datamarket.azure.com/Bing/Search";
var bingContainer = new Bing.BingSearchContainer(new Uri(rootUrl)); // The composite operations to use.
string operations = "web+news"; // Configure bingContainer to use your credentials.
bingContainer.Credentials = new NetworkCredential(AccountKey, AccountKey); // Build the query, limiting to 5 results (per service operation).
var compositeQuery =
bingContainer.Composite(operations, query, null, null, market,
null, null, null, null, null,
null, null, null, null, null);
compositeQuery = compositeQuery.AddQueryOption("$top", ); // Run the query and display the results.
var compositeResults = compositeQuery.Execute(); StringBuilder searchResults = new StringBuilder(); foreach (var cResult in compositeResults)
{
searchResults.Append("<h3>Web Result</h3>"); // Display web results.
foreach (var result in cResult.Web)
{
searchResults.Append(string.Format("<a href={2}>{0}</a><br /> {1}<br /> {2}<br /><br />",
result.Title,result.Url,result.Description));
} searchResults.Append("<h3>News Result</h3>"); // Display news results.
foreach (var result in cResult.News)
{
searchResults.Append(string.Format("<a href={0}>{1}</a><br /> {2}<br /> {3}&nbsp;{4}<br /><br />",
result.Url, result.Title, result.Description, result.Source, result.Date));
}
} Label lblResults = new Label(); lblResults.Text = searchResults.ToString();
Panel1.Controls.Add(lblResults); } }
}

Sample-Code:Bing Search API的更多相关文章

  1. 申请Bing Search API

    地址:https://datamarket.azure.com/home 没有帐号先注册一个,然后登录. 1:在数据中订阅Bing Search API,如果找不到就使用这个地址: https://d ...

  2. 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

    原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...

  3. BingHack,Bing旁注API查询工具

    现在旁注查询都失效了.通过网上查询发现有人说可以通过微软的API进行旁注查询 https://datamarket.azure.com/dataset/explore/bing/search 注册登录 ...

  4. Search API 官方文档 可以用了查看自己的app

    Search API October 24, 2012 - HTTPS is now supported for Search and Lookup requests. Please update y ...

  5. 微软职位内部推荐-Sr DEV Lead, Bing Search Relevance

    微软近期Open的职位: Contact Person: Winnie Wei (wiwe@microsoft.com )Sr DEV Lead, Bing Search RelevanceLocat ...

  6. 42 Bing Search Engine Hacks

    42 Bing Search Engine Hacks November 13, 2010 By Ivan Remember Bing, the search engine Microsoft lau ...

  7. Sample Code之Web scene-slides

    这是我的第一篇随笔,在开始正文前说几句. 这个系列会记录我学习Arcgis js API 4.10的全过程,希望能对自己也对其他有需要的人有帮助.很多时候上网看一些大神的帖子会感到一头雾水,一是自己水 ...

  8. android studio2.2 的Find Sample Code点击没有反应

    1 . 出现的问题描述:           右键点击Find Sample Code后半天没有反应,然后提示 Samples are currently unavailable for :{**** ...

  9. ElasticSearch Search API 简介

    REST request URI curl 'localhost:9200/bank/_search?q=*&pretty' 1. localhost:9200/bank/_search,以 ...

随机推荐

  1. Python中正则表达式对中文的匹配问题

    python匹配中文的时候特别要注意的是匹配的正则字符串是否是Unicode格式的: import re source = "s2f程序员杂志一2d3程序员杂志二2d3程序员杂志三2d3程序 ...

  2. redis实现发布订阅

    订阅者 #!/usr/bin/env python # -*- coding:utf-8 -*- import redis r = redis.Redis(host='192.168.11.119') ...

  3. Subscript & Inheritance

    [Subscript] 1.subscript的定义: 2.Subscript的使用: 3.可以定义多维subscript: 多维Subscript的使用: [Inheritance] 1.overr ...

  4. 【原创】6. 在MYSQL++中实现SQL语法中的NULL

    这次要说明的是在MYSQL++中为了实现SQL中的NULL而做出的一系列的举措.我的感觉是Null<T, B>类型通常出现在SSQLS和template Query中比较多. 1. 什么是 ...

  5. Android输入法部分遮挡UI的问题(与EditText框相切)

    首先,我们来看看遇到问题的图片 遇到的问题是,当点击输入框之后,输入法会切到红线的位置,理想状态应该是在绿线位置 那么,是什么原因造成的呢? 问题其实很简单,是因为drawableleft图片比该输入 ...

  6. sql语句查询中exists中为什么要用select 1?

    select * from call_cdr_xz_200609 a where and a.ori_charge<>0 and exists(select 1 from special ...

  7. _GNU_SOURCE宏

    打开_GNU_SOURCE这个宏可以打开一些功能,比如为了在Linux系统上编译使用带有检测文件type的宏(S_ISxxxx): S_ISREG() //传入stat结构的st_mode,下同.是否 ...

  8. CF570D Tree Requests

    离线 + 树状数组 如果子树中的一个深度的所有点中有两个以上的字母出现了奇数次,那么这个询问的答案就是$No$,其他的情况吧都是$Yes$. 由于只有$26$个字母,我们可以考虑暴力检验,把树映射到$ ...

  9. GridView删除行

    在GridView绑定数据的时候需要设置该GridView的主键值,设置的这个主键与取出来的数据的一个字段对应.比如,取出来的数据表中有个ID的字段,那设这个ID为该GridView的主键是比较好的. ...

  10. Laravel Gate 授权方式的使用指南

    参考链接:An Introduction to Laravel Authorization Gates 本文使用 Laravel 的 Gate 授权方式 实现一个基于用户角色的博客发布系统. 在系统包 ...