在搜尋結果中設定語意排名並傳回 標題
在本文中,瞭解如何在結果集上叫用語意排名,將最語意相關的結果提升至堆疊頂端。 您也可以取得語意 標題,其中包含最相關詞彙和片語的醒目提示,以及語意答案。
必要條件
基本、標準層(S1、S2、S3)或 儲存體 優化層(L1、L2)的搜尋服務,受限於區域可用性。
在搜尋服務上啟用語意排名器。
具有 RTF 內容的現有搜尋索引。 語意排名適用於文字(非函式)字段,最適合資訊性或描述性的內容。
選擇用戶端
選擇支援語意排名的搜尋用戶端。 以下列出一些選項:
- Azure 入口網站,使用索引設計工具新增語意組態。
- 搭配 REST 用戶端的 Visual Studio Code
- Azure SDK for .NET
- Azure SDK for Python
- 適用於 Java 的 Azure SDK
- 適用於 JavaScript 的 Azure SDK
新增語意組態
語意組態是索引中的區段,可建立語意排名的欄位輸入。 您可以隨時新增或更新語意設定,不需要重建。 如果您建立多個組態,您可以指定預設值。 在查詢時,請在查詢要求上指定語意組態,或將它保留空白以使用預設值。
語意組態具有名稱和下列屬性:
屬性 | 特性 |
---|---|
[標題] 欄位 | 簡短字串,理想情況下為 25 個字。 此欄位可以是文件的標題、產品名稱或唯一識別碼。 如果您沒有適當的欄位,請將它保留空白。 |
內容欄位 | 自然語言形式的較長文字區塊,受限於 機器學習模型的令牌輸入限制 上限。 常見範例包括檔的本文、產品的描述或其他自由格式文字。 |
關鍵詞欄位 | 關鍵詞清單,例如檔上的標籤,或描述性字詞,例如項目的類別。 |
您只能指定一個標題字段,但您可以視需要擁有許多內容和關鍵詞欄位。 針對內容和關鍵詞欄位,請依優先順序列出欄位,因為優先順序較低的欄位可能會遭到截斷。
在所有語意組態屬性中,您指派的欄位必須是:
- 屬性設定為
searchable
和retrievable
- 型
Edm.String
別為、Collection(Edm.String)
、字串子字段的字串Collection(Edm.ComplexType)
登入 Azure 入口網站 並流覽至已啟用語意排名的搜尋服務。
從 左側瀏覽窗格的 [索引 ] 中,開啟索引。
選取 [ 語意組態 ],然後選取 [ 新增語意組態]。
[ 新增語意組態 ] 頁面隨即開啟,其中包含選取標題欄位、內容欄位和關鍵詞欄位的選項。 只有可搜尋和可擷取的字串字段才符合資格。 請務必以優先順序列出內容欄位和關鍵詞欄位。
選取 [ 確定 ] 以儲存變更。
從預覽版本移轉
如果您的語意排名程序代碼使用預覽 API,本節將說明如何移轉至穩定版本。 您可以檢查變更記錄以驗證正式運作:
- 2023-11-01 (REST)
- Azure SDK for .NET (11.5) 變更記錄
- 適用於 Python 的 Azure SDK (11.4) 變更記錄
- 適用於 Java 的 Azure SDK (11.6) 變更記錄
- 適用於 JavaScript 的 Azure SDK (12.0) 變更記錄
行為變更:
自 2023 年 7 月 14 日起,語意排名器與語言無關。 它可以重新製作由多語系內容所組成的結果,且不會偏向特定語言。 在預覽版本中,語意排名會將結果與欄位分析器所指定的語言不同, 將結果不具許可權。
在 2021-04-30-Preview 和所有更新版本中,針對以相同版本為目標的 REST API 和所有 SDK 套件:
semanticConfiguration
(在索引定義中)會定義哪些搜尋字段用於語意排名。 先前在 2020-06-30-Preview REST API 中,searchFields
用於字段規格和優先順序。 此方法只能在 2020-06-30-Preview 中運作,而且在所有其他版本中已經過時。
步驟 1:移除 queryLanguage
語意排名引擎現在與語言無關。 如果在 queryLanguage
查詢邏輯中指定,則不再用於語意排名,但仍適用於 拼字更正。
如果您使用拼字檢查,以及拼字檢查是否支援語言值,請保留 queryLanguage
。 拼字檢查在語言之間具有有限的可用性。
否則,請刪除 queryLanguage
。
步驟 2:將 取代 searchFields
為 semanticConfiguration
如果您的程式代碼呼叫以該 REST API 版本為目標的 2020-06-30-Preview REST API 或 Beta SDK 套件,您可能會在 searchFields
查詢要求中使用 來指定語意字段和優先順序。 在初始 Beta 版本中,有雙重用途, searchFields
將初始查詢限制在 中列出的 searchFields
欄位,並在使用語意排名時設定字段優先順序。 在更新版本中, searchFields
保留其原始用途,但不再用於語意排名。
如果您使用查詢要求來限制具名字段清單的全文搜索,請保留 searchFields
查詢要求。
semanticConfiguration
依照本文中的指示,將 新增至索引架構以指定欄位優先順序。
下一步
執行語意查詢來測試您的語意設定。