如何通过必应搜索 API 分页列出结果

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源

将调用发送到必应 Web、自定义、图像、资讯或视频搜索 API 时,必应会返回可能与该查询相关的结果总数的子集。 要获取估计的可访问结果总数,请访问答案对象的 totalEstimatedMatches 字段。

例如:

{
    "_type" : "SearchResponse",
    "webPages" : {
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=3A43CA...",
        "totalEstimatedMatches" : 262000,
        "value" : [...]
    }
}  

分页列出搜索结果

要分页列出可访问结果,请在发送请求时使用 countoffset 查询参数。

注意

  • 使用必应视频、图像和资讯 API 分页仅适用于常规视频 (/video/search)、资讯 (/news/search) 和图像 (/image/search) 搜索。 不支持分页列出趋势主题和类别。
  • TotalEstimatedMatches 字段是当前查询的搜索结果预估总数。 设置 countoffset 参数时,此估计值可能会更改。
参数 说明
count 指定要在响应中返回的结果数。 请注意,count 的默认值和可请求的最大结果数因 API 而异。 可以在后续步骤下的参考文档中找到这些值。
offset 指定要跳过的结果数。 offset 从零开始,应小于 (totalEstimatedMatches - count)。

例如,如果希望每页显示 15 个结果,可以将 count 设置为 15,并将 offset 设置为 0,即可获得第一页结果。 对于后续每个 API 调用,可以使 offset 以 15 递增。 下面的示例展示了如何从偏移 45 处开始请求获取 15 个网页。

GET https://api.cognitive.microsoft.com/bing/v7.0/search?q=sailing+dinghies&count=15&offset=45&mkt=en-us HTTP/1.1  
Ocp-Apim-Subscription-Key: 123456789ABCDE  
Host: api.cognitive.microsoft.com  

如果使用默认 count 值,则只需在 API 调用中指定 offset 查询参数。

GET https://api.cognitive.microsoft.com/bing/v7.0/search?q=sailing+dinghies&offset=45&mkt=en-us HTTP/1.1  
Ocp-Apim-Subscription-Key: 123456789ABCDE  
Host: api.cognitive.microsoft.com  

使用必应图像和视频 API 时,可以使用 nextOffset 值来避免重复的搜索结果。 从 ImagesVideos 响应对象获取值,并将其用于请求中的 offset 参数。

注意

必应 Web 搜索 API 返回的搜索结果可能包括网页、图像、视频和资讯。 使用必应 Web 搜索 API 分页列出搜索结果时,只能对网页分页,而不能对图像或资讯等其他答案类型分页。 WebPage 对象中的搜索结果也可能包括其他答案类型中显示的结果。

如果使用 responseFilter 查询参数时未指定筛选器值,请不要使用 countoffset 参数。

后续步骤