如何逐頁檢視 Bing 搜尋 API 的搜尋結果

警告

在 2020 年 10 月 30 日,Bing 搜尋 API 已從 Azure AI 服務移至 Bing 搜尋 服務。 本文件僅供參考之用。 如需更新的文件,請參閱 Bing 搜尋 API 文件。 如需針對 Bing 搜尋建立新 Azure 資源的指示,請參閱透過 Azure Marketplace 建立 Bing 搜尋資源

當您將呼叫傳送至 Bing Web、自訂、影像、新聞或影片搜尋 API 時,Bing 會傳回可能與查詢相關之結果總數的子集。 若要取得可用結果的預估總數,請存取解答物件的 totalEstimatedMatches 欄位。

例如:

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

逐頁檢視搜尋結果

若要逐頁檢視可用的結果,請在傳送要求時使用 countoffset 查詢參數。

注意

  • 使用 Bing 影片、影像和新聞 API 進行分頁只適用於一般影片 (/video/search)、新聞 (/news/search) 和影像 (/image/search) 搜尋。 不支援逐頁檢視趨勢主題和類別。
  • TotalEstimatedMatches 欄位是針對目前查詢之搜尋結果總數的估計。 當您設定 countoffset 參數時,此估計值可能會變更。
參數 Description
count 指定要在回應中傳回的結果數目。 請注意,count 的預設值以及您可能要求的結果數目上限會依 API 而有所不同。 您可以在後續步驟下的參考文件中找到這些值。
offset 指定要略過的結果數目。 offset 是以零為起始,而且應該小於 (totalEstimatedMatches - count)。

例如,如果您希望每頁顯示 15 個結果,可以將 count 設定為 15,並將 offset 設定為 0,以取得結果的第一頁。 對於後續每個 API 呼叫,您可讓 offset 以 15 遞增。 以下範例要求 15 個於位移 45 開始的網頁。

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  

使用 Bing 影像和影片 API 時,您可以使用 nextOffset 值來避免重複的搜尋結果。 取得 ImagesVideos 回應物件中的值,並將其搭配 offset 參數,用於您的要求中。

注意

Bing Web 搜尋 API 會傳回可包含網頁、影像、影片和新聞的搜尋結果。 當您逐頁檢視 Bing Web 搜尋 API 中的搜尋結果時,您只會對網頁進行分頁,而不會對其他答案類型 (例如影像或新聞) 進行分頁。 WebPage 物件中的搜尋結果可能也包含出現在其他答案類型中的結果。

如果您在未指定任何篩選值的情況下使用 responseFilter 查詢參數,請不要使用 countoffset 參數。

下一步