在這個快速入門中,你會學習如何使用Search explorer,這是Azure入口網站內建的查詢工具,用於對Azure AI 搜尋服務索引進行查詢。 使用此工具來測試查詢或篩選表達式,或確認索引中是否存在內容。
此快速入門使用現有的索引來演示搜尋探索器。
先決條件
一個有有效訂閱的 Azure 帳號。 免費註冊帳號。
一個 Azure AI 搜尋服務 服務。 在您目前訂閱中建立服務或 尋找現有服務。 為了快速啟動,你可以使用免費服務。
此快速入門使用飯店樣本索引。 請依 照這個快速入門 的指示建立索引。
啟動搜尋瀏覽器
前往 Azure 入口網站中的搜尋服務。
從左側窗格選擇 「概覽」。
在指令列中,選擇 搜尋資源管理器。
或者,在索引頁面選擇 搜尋瀏覽器 標籤。
三種查詢方式
搜尋瀏覽器中有三種查詢方式:
查詢檢視提供預設的搜尋列。 它接受空查詢或帶有布林值的自由文本查詢,例如
ocean view + parking。影像檢視提供一個視窗,讓你瀏覽或拖放 PNG、JPG 或 JPEG 檔案。 除非你的索引有 圖像向量化器和等效技能,否則此視圖無法使用。
JSON 檢視支援參數化查詢。 篩選器、orderby、select、count、searchFields 及其他所有參數必須在 JSON 檢視中設定。
範例:圖片查詢
搜尋瀏覽器接受圖片作為查詢輸入透過影像檢視,這需要使用受支援的向量化工具與技能組合。 欲了解更多資訊,請參閱 「在搜尋索引中配置向量器」。
飯店樣本索引沒有設定為影像向量化。 如果你想執行圖片查詢,請依照 快速入門:Vector search in Azure portal 建立索引。 快速入門依賴文字範例資料,因此必須使用包含圖片的文件。
要執行圖片查詢,請選擇或拖曳圖片到搜尋區,然後選擇 搜尋。 搜尋探索器會將影像向量化,並將向量傳送給搜尋引擎以執行查詢。 搜尋引擎會回傳與輸入圖片足夠相似的文件,且數量限制在指定 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份,跳過前10份文件(預設為50份,最大為1000份)。 你可以檢查文件鍵(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)對於學習和探索特別有幫助。