在這個快速入門中,你會學習如何使用Search explorer,這是Azure入口網站內建的查詢工具,用於對Azure AI 搜尋服務索引進行查詢。 使用此工具來測試查詢或篩選表達式,或確認索引中是否存在內容。
此快速入門使用現有索引來展示搜尋探索器。
先決條件
一個有有效訂閱的 Azure 帳號。 免費註冊帳號。
一個 Azure AI 搜尋服務 服務。 在您目前訂閱中建立服務或 尋找現有服務。 為了快速啟動,你可以使用免費服務。
此快速入門指南使用飯店範例索引。 請依 照這個快速入門 的指示建立索引。
啟動搜尋瀏覽器
在Azure 入口網站中,進入您的搜尋服務。
從左側窗格選擇 「概覽」。
在指令列中,選擇 搜尋管理器。
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)對於學習和探索特別有幫助。