在 Azure AI 搜尋中查詢

Azure AI 搜尋支援各種案例的查詢建構,從自由格式文字搜尋到高度指定的查詢模式,到向量搜尋。 所有查詢都會在儲存可搜尋內容的搜尋索引上執行。

查詢類型

查詢表單 可搜尋的內容 描述
全文搜索 標記化詞彙的反向索引。 全文檢索查詢會逐一查看結構化以進行快速掃描的反向索引,其中可在任意數目的搜尋檔內,在任何字段找到相符專案。 文字會進行分析並標記以進行全文搜索。
向量搜尋 產生的內嵌的向量索引。 向量查詢會逐一查看搜尋索引中的向量欄位。
混合式搜尋 上述所有專案都在單一搜尋索引中。 在單一查詢要求中結合文字搜尋和向量搜尋。 文字搜尋適用於「可搜尋」和「可篩選」欄位中的純文本內容。 向量搜尋適用於向量欄位中的內容。
其他 純文本和英數位元內容。 原始內容,從源檔擷取逐字,支援篩選和模式比對查詢,例如地理空間搜尋、模糊搜尋和字段搜尋。

本文將焦點放在最後一個類別:適用於純文本和英數位元內容的查詢,從原始來源擷取完整、用於篩選和其他特殊查詢表單的查詢。

自動完成和建議的查詢

自動完成或建議的結果 是替代 search 方法,其會根據搜尋時即用體驗中的部分字串輸入(在每個字元之後)引發後續查詢要求。 如本逐步解說所述,您可以將 autocomplete 和 參數一起使用或suggestions個別使用,但無法搭配 search使用。 已完成的字詞和建議查詢都是衍生自索引內容。 引擎永遠不會傳回索引中不存在的字串或建議。 如需詳細資訊,請參閱 自動完成 (REST API)建議 (REST API)

篩選在以 Azure AI 搜尋為基礎的應用程式中廣泛使用。 在應用程式頁面上,篩選通常會在鏈接導覽結構中將篩選可視化為使用者導向篩選的 Facet。 篩選也用於內部公開索引內容的配量。 例如,您可以使用產品類別的篩選來初始化搜尋頁面,或索引包含英文和法文中的欄位時的語言。

您可能也需要篩選條件來叫用特殊查詢表單,如下表所述。 您可以使用篩選搭配未指定的搜尋 (search=*) 或包含字詞、片語、運算元和模式的查詢字串。

篩選案例 描述
範圍篩選 在 Azure AI 搜尋中,範圍查詢是使用篩選參數所建置。 如需詳細資訊和範例,請參閱 範圍篩選範例
多面向導覽 在多面向導覽樹狀結構中,用戶可以選取 Facet。 依篩選支援時,搜尋結果會在每次按兩下時縮小。 每個 Facet 都會受到篩選的支援,該篩選會排除不再符合 Facet 所提供準則的檔。

注意

在查詢處理期間,不會分析篩選表達式中使用的文字。 文字輸入假設為逐字區分大小寫的字元模式,會在相符專案上成功或失敗。 篩選表達式是使用 OData 語法來建構,並在索引中所有篩選欄位的參數中傳遞filter。 如需詳細資訊,請參閱 Azure AI 搜尋中的篩選。

地理空間搜尋會比對位置的緯度和經度座標,以取得「在我附近尋找」或地圖型搜尋體驗。 在 Azure AI 搜尋中,您可以遵循下列步驟來實作地理空間搜尋:

地理空間搜尋使用公里進行距離。 座標會以下列格式指定: (longitude, latitude

以下是地理空間搜尋篩選的範例。 此篩選會 Location 尋找搜尋索引中的其他字段,其座標在地理點的 300 公里半徑內(在此範例中為華盛頓特區)。 它會傳回結果中的地址資訊,並包含選擇性 facets 子句,以根據位置進行自我流覽。

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-07-01-Preview
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

如需詳細資訊和範例,請參閱 地理空間搜尋範例

檔查閱

相較於先前所述的查詢窗體,此窗體會依標識符擷取單一搜尋檔,且沒有對應的索引搜尋或掃描。 只會要求並傳回一份檔。 當使用者在搜尋結果中選取專案時,擷取檔並將詳細數據頁面填入字段是典型的回應,而檔查閱是支援它的作業。

進階搜尋:模糊、通配符、鄰近性、regex

進階查詢表單取決於觸發特定查詢行為的 Full Lucene 剖析器和運算符。

查詢類型 使用方式 範例和詳細資訊
欄位搜尋 search 參數 queryType=full 建置以單一欄位為目標的複合查詢表達式。
欄位搜尋範例
模糊搜尋 search 參數 queryType=full 符合具有類似建構或拼字的詞彙。
模糊搜尋範例
鄰近搜尋 search 參數 queryType=full 尋找檔中彼此接近的字詞。
鄰近搜尋範例
字詞提升 search 參數 queryType=full 如果檔包含提升的字詞,相對於其他沒有的字詞,則會將檔排名更高。
詞彙提升範例
正則表達式搜尋 search 參數 queryType=full 根據正則表達式的內容比對。
正則表達式範例
通配符或前置詞搜尋 search 參數含 *~?queryType=full 根據前置詞和並排符號 (~) 或單一字元 (?) 進行比對。
通配符搜尋範例

下一步

如需深入了解查詢實作,請檢閱每個語法的範例。 如果您不熟悉全文搜索,請進一步了解查詢引擎的用途可能是同樣理想的選擇。