在 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 搜尋中,您可以遵循下列步驟來實作地理空間搜尋:
- 定義下列其中一種類型的可篩選字段: Edm.GeographyPoint、Collection(Edm.GeographyPoint、Edm.GeographyPolygon) 。
- 確認傳入的檔包含適當的座標。
- 編製索引完成之後,請建置使用篩選條件和地理空間函式的查詢。
地理空間搜尋使用公里進行距離。 座標會以下列格式指定: (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 |
根據前置詞和並排符號 (~ ) 或單一字元 (? ) 進行比對。 通配符搜尋範例 |
下一步
如需深入了解查詢實作,請檢閱每個語法的範例。 如果您不熟悉全文搜索,請進一步了解查詢引擎的用途可能是同樣理想的選擇。