Sample-Code:Bing Search API
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>
<br />
<asp:Button ID="btnWebSearch" runat="server"
Text="Web Results" onclick="btnWebSearch_Click" />
<asp:Button ID="btnImageSearch" runat="server" Text="Image Search"
onclick="btnImageSearch_Click" />
<asp:Button ID="btnVideosSearch" runat="server"
Text="Videos Results" onclick="btnVideosSearch_Click" />
<asp:Button ID="btnNewsSearch" runat="server" Text="News Search"
onclick="btnNewsSearch_Click" />
<asp:Button ID="btnSpellingSuggestionSearch" runat="server" Text="Spelling Suggestion Search" onclick="btnSpellingSuggestionSearch_Click"
/>
<asp:Button ID="btnRelatedSearch" runat="server" Text="RelatedSearch" onclick="btnRelatedSearch_Click"
/>
<asp:Button ID="btnCompositeSearch" runat="server" Text="Composite Search"
Width="148px" onclick="btnCompositeSearch_Click" />
<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} {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} {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的更多相关文章
- 申请Bing Search API
地址:https://datamarket.azure.com/home 没有帐号先注册一个,然后登录. 1:在数据中订阅Bing Search API,如果找不到就使用这个地址: https://d ...
- 如何将经纬度利用Google Map API显示C# VS2005 Sample Code
原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...
- BingHack,Bing旁注API查询工具
现在旁注查询都失效了.通过网上查询发现有人说可以通过微软的API进行旁注查询 https://datamarket.azure.com/dataset/explore/bing/search 注册登录 ...
- Search API 官方文档 可以用了查看自己的app
Search API October 24, 2012 - HTTPS is now supported for Search and Lookup requests. Please update y ...
- 微软职位内部推荐-Sr DEV Lead, Bing Search Relevance
微软近期Open的职位: Contact Person: Winnie Wei (wiwe@microsoft.com )Sr DEV Lead, Bing Search RelevanceLocat ...
- 42 Bing Search Engine Hacks
42 Bing Search Engine Hacks November 13, 2010 By Ivan Remember Bing, the search engine Microsoft lau ...
- Sample Code之Web scene-slides
这是我的第一篇随笔,在开始正文前说几句. 这个系列会记录我学习Arcgis js API 4.10的全过程,希望能对自己也对其他有需要的人有帮助.很多时候上网看一些大神的帖子会感到一头雾水,一是自己水 ...
- android studio2.2 的Find Sample Code点击没有反应
1 . 出现的问题描述: 右键点击Find Sample Code后半天没有反应,然后提示 Samples are currently unavailable for :{**** ...
- ElasticSearch Search API 简介
REST request URI curl 'localhost:9200/bank/_search?q=*&pretty' 1. localhost:9200/bank/_search,以 ...
随机推荐
- 使用Selenium登录新浪微博
为了总结一下Selenium的用法,具体用了这个例子来说明一下. Selenium简单来说,就是通过程序驱动一个浏览器,并且可以通过程序来帮你做一些事情,例如点击.填表呀之类的. 换句话说,你在浏览器 ...
- Mybatis工具Generator
转自:http://www.cuiyongzhi.com/post/36.html MyBatis Generator(以下简称为MBG),可以逆向生成持久层的基本代码,而且mybatis的实现方案比 ...
- @Value关于static字段的注入
@Component public class BaseCode { //应用key public static String APP_KEY; //应用密钥 public static String ...
- Python基础学习四 文件操作(二)
####读取文件#### with open('goods_info.txt', 'r', encoding='utf-8') as f: f.seek(0) # 注意指针位置 goods_info ...
- C#使用windows服务定时调用api接口
使用VS创建windows服务项目: 创建好项目 会出现一个设计界面 右键弹出对话框 选择添加安装程序 名字什么的自己可以改: 项目目录: 打开项目中的ProjectInstaller.Design ...
- HTTP防盗链与反防盗链
HTTP防盗链 通过上一次,我没对HTTP请求不再那么陌生了.防盗链无非就是别人来请求自己网站的信息,用于其他网站,那么如果我们能识别请求是来自那个网站,如果是外网,那么就重定向等其他处理.但在web ...
- ESP8266-iot-2
1.SDK概述 复制相关的工程文件到HelloWorld里面 要在版本esp8266_nonos_sdk_v2.0.0_16_07_19上面开发,那么就要复制相应文件 然后打开IDE 导入HelloW ...
- spark源码阅读之network(1)
spark将在1.6中替换掉akka,而采用netty实现整个集群的rpc的框架,netty的内存管理和NIO支持将有效的提高spark集群的网络传输能力,为了看懂这块代码,在网上找了两本书看< ...
- jQuery插件编写学习+实例——无限滚动
最近自己在搞一个网站,需要用到无限滚动分页,想想工作两年有余了,竟然都没有写过插件,实在惭愧,于是简单学习了下jQuery的插件编写,然后分享出来. 先说下基础知识,基本上分为两种,一种是对象级别的插 ...
- LIRE教程之源码分析 | LIRE Tutorial of Analysis of the Source Code
LIRE教程之源码分析 |LIRE Tutorial of Analysis of the Source Code 最近在做地理图像识别和检索的研究,发现了一个很好用的框架LIRE,遂研究了一通.网上 ...