2020 年 10 月 30 日,必应搜索 API 从认知服务移动到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅
必应搜索 API 文档
。 关于为必应搜索创建新的 Azure 资源的说明,请参阅
通过 Azure 市场创建必应搜索资源
。
参考本快速入门对必应实体搜索 API 进行第一次调用并查看 JSON 响应。 这个简单的 Ruby 应用程序会向该 API 发送一个新闻搜索查询并显示响应。
GitHub
上提供了此应用程序的源代码。
虽然此应用程序是使用 Ruby 编写的,但 API 是一种 RESTful Web 服务,与大多数编程语言兼容。
Ruby 2.4
或更高版本。
创建 Azure 资源
通过创建以下 Azure 资源之一开始使用必应实体搜索 API。
在删除资源前,可通过 Azure 门户使用。
使用免费定价层试用该服务,稍后升级到用于生产的付费层。
必应实体搜索也在
必应搜索 v7 资源
的付费层中提供。
在删除资源前,可通过 Azure 门户使用。
在多个认知服务中对应用程序使用相同的密钥和终结点。
创建并初始化应用程序
在你最喜欢的 IDE 或代码编辑器中创建新闻 Ruby 文件并导入以下包:
require 'net/https'
require 'cgi'
require 'json'
为 API 终结点、新闻搜索 URL、订阅密钥和搜索查询创建变量。 你可以使用以下代码中的全局终结点,或者使用资源的 Azure 门户中显示的自定义子域终结点。
host = 'https://api.bing.microsoft.com'
path = '/v7.0/search'
mkt = 'en-US'
query = 'italian restaurants near me'
通过将市场变量追加到 ?mkt=
参数,为请求创建参数字符串。 对查询进行编码并将其追加到 &q=
参数。 将 API 主机、路径以及请求的参数组合在一起,将其强制转换为 URI 对象。
params = '?mkt=' + mkt + '&q=' + CGI.escape(query)
uri = URI (host + path + params)
使用上一个步骤中的变量来创建请求。 将订阅密钥添加到 Ocp-Apim-Subscription-Key
标头。
request = Net::HTTP::Get.new(uri)
request['Ocp-Apim-Subscription-Key'] = subscriptionKey
发送请求并打印响应。
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request (request)
puts JSON::pretty_generate (JSON (response.body))
示例 JSON 响应
在 JSON 中返回成功的响应,如以下示例所示:
"_type": "SearchResponse",
"queryContext": {
"originalQuery": "italian restaurant near me",
"askUserForLocation": true
"places": {
"value": [
"_type": "LocalBusiness",
"webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
"name": "Liberty's Delightful Sinful Bakery & Cafe",
"url": "https://www.contoso.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness"
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98112",
"addressCountry": "US",
"neighborhood": "Madison Park"
"telephone": "(800) 555-1212"
. . .
"_type": "Restaurant",
"webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
"name": "Munson's Pickles and Preserves Farm",
"url": "https://www.princi.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness",
"Restaurant"
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US",
"neighborhood": "Capitol Hill"
"telephone": "(800) 555-1212"
. . .
构建单页 Web 应用
什么是必应实体搜索 API?
必应实体搜索 API 参考。