語意排名會逐一查看初始結果集,並套用 L2 排名方法,將語意上最相關的結果提升至堆疊頂端。 您也可以取得語意字幕,其中突出顯示最相關的字詞和片語,以及語意答案。
本文會說明如何設定搜尋索引以進行語意重新排名。
附註
如果您有現有的程式碼可呼叫預覽版或舊版 API,請參閱移轉語意排名程式碼 (英文),以協助修改您的程式碼。
必要條件
基本層或更高層級的搜尋服務,依區域可用性而定。
在您的搜尋服務上啟用語意排名工具。
具有豐富文本內容的現有搜尋索引。 語意排名適用於字串 (非向量) 欄位,而且最適合資訊性或描述性內容。
選擇用戶端
您可以使用下列任何工具和軟體開發工具套件 (SDK) 來新增語意組態,在新的或現有的索引上指定語意組態:
- Azure 入口網站,使用索引設計工具新增語意設定。
- Visual Studio Code 搭配 REST 用戶端 和 建立或更新索引(REST)API。
- Azure SDK for .NET
- Azure SDK for Python
- Azure SDK for Java
- Azure SDK for JavaScript
新增語意設定
語意設定是索引中的區段,用於建立語意排名的欄位輸入。 您無須重建,即可隨時新增或更新語意設定。 若您建立多個設定,則可以指定預設值。 在查詢時,請在查詢要求上指定語意設定,或將其留空以使用預設值。
您可以在單一索引中建立最多 100 個語意組態。
語意設定具有名稱和下列屬性:
屬性 | 特性 |
---|---|
標題欄位 | 簡短字串,最好少於 25 個字。 此欄位可以是文件標題、產品名稱或唯一識別碼。 若您沒有適當的欄位,請將其留空。 |
內容欄位 | 自然語言形式的較長文字區塊,受限於機器學習模型中的最大語彙基元輸入限制。 常見範例包括文件本文、產品說明或其他自由格式的文字。 |
關鍵字欄位 | 關鍵字清單,例如文件中的標籤,或描述性字詞,例如項目的類別。 |
您只能指定一個標題欄位,但可以隨意指定多個內容和關鍵字欄位。 對於內容和關鍵字欄位,請依優先順序列出欄位,因為優先順序較低的欄位可能會遭到截斷。
在所有語意設定屬性中,您指派的欄位必須是:
- 屬性為
searchable
和retrievable
Edm.String
、Collection(Edm.String)
類型的字串,Edm.ComplexType
的字串子欄位
登入 [Azure 入口網站] 並瀏覽至已啟用語意排名的搜尋服務。
從 左側瀏覽窗格的 [索引 ] 中,選取索引。
選取 [ 語意組態 ],然後選取 [ 新增語意組態]。
在 [ 新增語意組態] 頁面上,輸入語意組態 名稱,然後選取要用於語意組態的字段。 只有可搜尋和可擷取的字串欄位才符合資格。 請務必依優先順序列出內容欄位及關鍵字欄位。
選取 [ 儲存 ] 以儲存組態設定。
在索引頁面上再次選取 [儲存 ],以將語意組態儲存在索引中。
加入以取得發行前版本語意排名模型
附註
這項功能目前處於公開預覽狀態。 此預覽版在沒有服務等級協議的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
從 2025-03-01-preview REST API 和提供該屬性的 Azure SDK 開始,您可以選擇性地設定索引,以便在您所在區域部署了索引時,使用發行前版本語意排名模型。 沒有機制可知道發行前版本是否可用,或是否用於特定查詢。 基於這個理由,我們建議您在測試環境中使用這個屬性,而且只有在您想要試用最新的語意排名模型時才使用。
組態屬性為 "flightingOptIn": true
,而且會在索引的語意組態區段中設定。 屬性預設為 null 或 false。 您可以隨時在建立或更新要求中將其設定為 true,這將影響之後的語意查詢,前提是查詢指定了包含該屬性的語意設定。
PUT https://myservice.search.windows.net/indexes('hotels')?allowIndexDowntime=False&api-version=2025-03-01-preview
{
"name": "hotels",
"fields": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": "geo",
"suggesters": [ ],
"analyzers": [ ],
"corsOptions": { },
"encryptionKey": { },
"similarity": { },
"semantic": {
"configurations": [
{
"name": "semanticHotels",
"prioritizedFields": {
"titleField": {
"fieldName": "hotelName"
},
"prioritizedContentFields": [
{
"fieldName": "description"
},
{
"fieldName": "description_fr"
}
],
"prioritizedKeywordsFields": [
{
"fieldName": "tags"
},
{
"fieldName": "category"
}
],
"flightingOptIn": true
}
}
]
},
"vectorSearch": { }
}
下一步
透過執行語意查詢,測試您的語意設定。