发送和使用必应当地企业搜索 API 查询和响应
警告
2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源。
可以通过向必应当地企业搜索 API 的终结点发送搜索查询并包含必需的 Ocp-Apim-Subscription-Key
标头,从该 API 获取当地查询结果。 除了使用可用的标头和参数以外,还可以通过指定要搜索的区域的地理边界以及要返回的地点的类别,来自定义搜索。
创建请求
若要将请求发送到必应当地企业搜索 API,请将一个搜索词追加到 q=
参数,然后将该参数添加到 API 终结点并包含 Ocp-Apim-Subscription-Key
标头。 例如:
https://api.cognitive.microsoft.com/bing/localbusinesses/v7.0/search?q=restaurant+in+Bellevue
完整的请求 URL 语法如下所示。 有关发送请求的详细信息,请参阅必应当地企业搜索 API 快速入门,以及标头和参数的参考内容。
有关当地搜索类别的信息,请参阅必应当地企业搜索 API 的搜索类别。
https://api.cognitive.microsoft.com/bing/v7.0/localbusinesses/search[?q][&localCategories][&cc][&mkt][&safesearch][&setlang][&count][&first][&localCircularView][&localMapView]
使用响应
必应当地企业搜索 API 的 JSON 响应包含 SearchResponse
对象。 API 将在 places
字段中返回相关搜索结果。 如果未找到任何结果,places
字段不会包含在响应中。
注意
由于 URL 格式和参数可能会在未另行通知的情况下有所更改,请按现状使用所有 URL。 不应依赖于 URL 格式或参数,除非另有说明。
{
"_type": "SearchResponse",
"queryContext": {
"originalQuery": "restaurant in Bellevue"
},
"places": {
"totalEstimatedMatches": 10,
. . .
搜索结果属性
API 返回的 JSON 结果包含以下属性:
- _type
- address
- entityPresentationInfo
- 地区
- id
- name
- routeablePoint
- telephone
- url
有关标头、参数、市场代码、响应对象、错误等的一般信息,请参阅必应当地搜索 API v7 参考。
注意
你或代表你的第三方不得出于测试、开发、培训、分发或提供任何非 Microsoft 服务或功能目的使用、保留、存储、缓存、共享或分发来自当地搜索 API 的任何数据。
示例 JSON 响应
以下 JSON 响应包含查询 ?q=restaurant+in+Bellevue
指定的搜索结果。
Vary: Accept-Encoding
BingAPIs-TraceId: 5376FFEB65294E24BB9F91AD70545826
BingAPIs-SessionId: 06ED7CEC80F746AA892EDAAC97CB0CB4
X-MSEdge-ClientID: 112C391E72C0624204153594738C63DE
X-MSAPI-UserState: aeab
BingAPIs-Market: en-US
X-Search-ResponseInfo: InternalResponseTime=659,MSDatacenter=CO4
X-MSEdge-Ref: Ref A: 5376FFEB65294E24BB9F91AD70545826 Ref B: BY3EDGE0306 Ref C: 2018-10-16T16:26:15Z
apim-request-id: fe54f585-7c54-4bf5-8b92-b9bede2b710a
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Cache-Control: max-age=0, private
Date: Tue, 16 Oct 2018 16:26:15 GMT
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND"
Content-Length: 978
Content-Type: application/json; charset=utf-8
Expires: Tue, 16 Oct 2018 16:25:15 GMT
{
"_type": "SearchResponse",
"queryContext": {
"originalQuery": "restaurant Bellevue"
},
"places": {
"totalEstimatedMatches": 50,
"value": [{
"_type": "LocalBusiness",
"id": "https:\/\/cognitivegblppe.azure-api.net\/api\/v7\/#Places.0",
"name": "Facing East Taiwanese Restaurant",
"url": "http:\/\/litadesign.wix.com\/facingeastrestaurant",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": ["Place", "LocalBusiness", "Restaurant"]
},
"geo": {
"latitude": 47.6199188232422,
"longitude": -122.202796936035
},
"routablePoint": {
"latitude": 47.6199188232422,
"longitude": -122.201713562012
},
"address": {
"streetAddress": "1075 Bellevue Way NE Ste B2",
"addressLocality": "Bellevue",
"addressRegion": "WA",
"postalCode": "98004",
"addressCountry": "US",
"neighborhood": "Bellevue",
"text": "1075 Bellevue Way NE Ste B2, Bellevue, WA 98004"
},
"telephone": "(425) 688-2986"
}],
"searchAction": {
"location": [{
"name": "Bellevue, Washington"
}],
"query": "restaurant"
}
}
}
限制请求
服务和订阅类型决定了每秒可以发出的查询数 (QPS)。 请确保应用程序包含防止超出配额限制的逻辑。 如果达到或超出 QPS 限制,则请求会失败,系统会返回 HTTP 429 状态代码。 响应包含 Retry-After
标头,该标头指示需等待多久才能发送另一请求。
拒绝服务与限制
该服务区分拒绝服务 (DoS) 攻击和 QPS 违规。 如果该服务怀疑存在 DoS 攻击,则请求会成功(HTTP 状态代码为“200 正常”)。 但是,响应正文为空。