快速入門:使用「Search explorer」在 Azure 入口網站中執行查詢

在這個快速入門中,你會學習如何使用Search explorer,這是Azure入口網站內建的查詢工具,用於對Azure AI 搜尋服務索引進行查詢。 使用此工具來測試查詢或篩選表達式,或確認索引中是否存在內容。

此快速入門使用現有索引來展示搜尋探索器。

先決條件

啟動搜尋瀏覽器

  1. Azure 入口網站中,進入您的搜尋服務。

  2. 從左側窗格選擇 「概覽」。

  3. 在指令列中,選擇 搜尋管理器

    Portal 中搜尋瀏覽器指令的截圖。

    或者,在索引頁面選擇搜尋瀏覽器標籤。

三種查詢方式

搜尋瀏覽器中有三種查詢方式:

  • 查詢檢視提供預設的搜尋列。 它接受空查詢或帶有布林值的自由文本查詢,例如 ocean view + parking

  • 影像檢視提供一個視窗,讓你瀏覽或拖放 PNG、JPG 或 JPEG 檔案。 除非你的索引有圖像矢量化工具和對應技術,否則此視圖無法使用。

  • JSON 檢視支援參數化查詢。 篩選器、orderby、select、count、searchFields 及其他所有參數必須在 JSON 檢視中設定。

    搜尋總管中三種查詢視圖的截圖。

範例:圖片查詢

搜尋探勘器接受影像作為影像檢視的查詢輸入,這需要你使用支援的向量器–算法組合。 欲了解更多資訊,請參閱 「在搜尋索引中配置向量器」。

飯店樣本索引沒有設定為影像向量化。 如果您想執行影像查詢,請依照 快速入門:Azure 入口中的向量搜尋 建立索引。 快速入門依賴文字範例資料,因此必須使用包含圖片的文件。

要執行圖片查詢,請選擇或拖曳圖片到搜尋區,然後選擇 搜尋。 搜尋工具會將影像向量化,並將向量傳送給搜尋引擎以進行查詢。 搜尋引擎會回傳與輸入圖片足夠相似的文件,且數量限制在指定 k 結果數範圍內。

圖片搜尋結果截圖。

範例:JSON 查詢

以下是你可以使用搜尋總管執行的 JSON 查詢範例。 要依照這些範例,請切換到 JSON 視圖。 你可以把每個 JSON 範例貼到文字區。

提示

JSON 視圖支援 intellisense 進行參數名稱補全。 將游標放在 JSON 視圖中,輸入空格字元即可查看所有查詢參數的清單。 你也可以輸入字母,例如 s,這樣只會看到以該字母開頭的查詢參數。

Intellisense 不會排除無效參數,所以請自行判斷。

執行一個未指定的查詢

在搜尋瀏覽器中,POST 請求會以內部的 Documents - Search Post (REST API)來表述,回應則以冗長的 JSON 文件形式返回。

若要初步瀏覽內容,請選擇「 搜尋 且不提供關鍵字」來執行空搜尋。 空搜尋作為第一個查詢很有用,因為它會回傳整份文件,讓你能檢視文件組成。 在空搜尋中,沒有搜尋分數,文件會以任意順序返回("@search.score": 1 所有文件)。 預設情況下,每次搜尋請求會返回50份文件。

加以 "count": true 取得索引中匹配的數量。 在空搜尋中,計數即為索引中文件的總數。 在符合條件的搜尋中,是符合查詢的文件數量。 請記得服務預設會回傳前50名的匹配,因此計數可能會顯示索引中比返回結果中的匹配更多。

空搜尋的等價語法為 *"search": "*"

{
   "search": "*",
   "count": true
}

選舉結果

計數範例截圖。

執行自由文字查詢

自由式搜尋,無論有無運算子,都適合模擬從自訂應用程式發送到 Azure AI 搜尋服務 的使用者定義查詢。 只有索引中標示為可搜尋的欄位會被掃描是否匹配。

你不需要 JSON 視圖來做自由文字查詢,但我們以 JSON 格式提供,以與本文其他範例保持一致。

請注意,當你提供搜尋條件,例如查詢詞或表達式時,搜尋排名就會發揮作用。 以下範例說明了自由文本搜尋。 @search.score這是使用預設評分演算法計算出的相關性分數。

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast"
}

選舉結果

你可以用 Ctrl-F 在結果中搜尋特定感興趣的詞彙。

自由文字查詢範例的截圖。

搜尋結果中的限制欄位

"select"中,限制結果只能顯示明確命名的欄位,讓結果更易讀。 只有在索引中標記為可檢索的欄位才能出現在結果中。

{
   "search": "activities `outdoor pool` restaurant OR continental breakfast",
   "count": true,
   "select": "HotelId, HotelName, Tags, Description"
}

選舉結果

搜尋結果中限制欄位的截圖範例。

回傳下一批結果

Azure AI 搜尋服務 會根據搜尋排名回傳前 50 名的配對。 飯店樣本索引只有50家飯店,因此我們用較小的數字來說明分頁的過程。 要取得下一組匹配文件,附加 "top": 20"skip": 10 將結果集增加到20份文件(預設為50份,最多可達1000份),同時跳過前10份文件。 你可以檢查文件鍵(HotelId)來辨識文件。

請記得你需要提供搜尋條件,例如查詢詞或表達式,才能獲得排名結果。 搜尋分數隨著你深入搜尋結果而下降。

{
   "search": "activities `outdoor pool` restaurant OR continental breakfast",
   "count": true,
   "select": "HotelId, HotelName, Tags, Description",
   "top": 20,
   "skip": 10
}

選舉結果

下一批搜尋結果回傳的截圖範例。

濾波器表達式(大於、小於、等於)

使用參數 filter 來指定納入或排除標準。 該欄位必須在索引中標明為可篩選。 此範例搜尋評分大於四:

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast",
    "count": true,
    "select": "HotelId, HotelName, Tags, Description, Rating",
    "filter": "Rating gt 4"
}

選舉結果

濾鏡範例的截圖。

排序結果

為了能根據搜尋分數以外的其他欄位排序,請新增orderby。 欄位必須在索引中設為可排序屬性。 當篩選值相同(例如價格相同)時,排序是任意的,但你可以加入更多條件以進行更深入的排序。 這裡有一個範例表達式可以用來測試:

{
    "search": "activities `outdoor pool` restaurant OR continental breakfast",
    "count": true,
    "select": "HotelId, HotelName, Tags, Description, Rating, LastRenovationDate",
    "filter": "Rating gt 4",
    "orderby": "LastRenovationDate desc"
}

選舉結果

一個排序範例的截圖。

重點摘要

在這個快速入門中,你使用 搜尋總管(Search Explorer) 透過 REST API 查詢索引。

  • 結果會以冗長的 JSON 文件回傳,讓您能完整檢視每份文件的結構與內容。 select查詢表達式中的參數限制回傳的欄位。

  • 搜尋結果由索引中所有被標記為可檢索的欄位組成。 選擇 欄位 索引標籤以檢視屬性。

  • 關鍵字搜尋類似於商業瀏覽器輸入的關鍵字,對於測試最終使用者體驗非常有用。 例如,假設是 hotels-sample index,你可以輸入 "activities 'outdoor pool' restaurant OR continental breakfast",然後用 Ctrl-F 在搜尋結果中尋找關鍵字。

  • 查詢與篩選表達式由 Azure AI 搜尋服務 實作的語法表達。 預設是簡單語法,但你也可以選擇使用完整的 Lucene來執行更強大的查詢。 篩選表達式 以 OData 語法表達。

清理資源

當你在自己的訂閱中工作時,最好先完成專案,移除不再需要的資源。 如果讓資源持續運行,可能會增加您的費用。

在Azure入口網站中,從左側窗格選擇 所有資源資源群組以尋找並管理資源。 你可以單獨刪除資源,或是一次性刪除資源群組,移除所有資源。

如果你使用免費搜尋服務,請記得你只能使用三個索引、索引器和資料來源。 你可以在入口網站 刪除單一項目 ,這樣可以保持在限制內。

下一步

想更了解查詢結構和語法,可以使用 REST 客戶端建立使用更多 REST API 部分的查詢表達式。 文件 - Search Post (REST API)對於學習和探索特別有幫助。