新增評分設定檔來改善結果的相關性
Azure AI 搜尋服務會使用 BM25 相似度排名演算法。 演算法會根據所使用的搜尋字詞來為文件評分。
在這裡,您將了解如何新增評分設定檔,以根據自訂準則來改變文件的分數。
搜尋分數的計算方式
評分是處理搜尋查詢的最後一個階段。
搜尋引擎會為前三個階段傳回的文件評分。 這個分數是結合所識別搜尋字詞出現在文件中的次數、文件大小,以及每個字詞的罕見度而得的函式。 根據預設,搜尋結果會依搜尋分數排序,由高至低。 如果兩份文件具有相同的搜尋分數,您可以透過新增 $orderby
子句中斷連結。
改善更多相關文件的分數
由於預設評分會以字詞出現頻率和罕見度為作業基準,因此最終計算的分數可能不會傳回最相關文件的最高分數。 每個資料集都不同,因此 AI 搜尋服務可讓您使用評分設定檔影響文件分數。
最直接的評分設定檔會為索引中的欄位定義不同的權數。 在上述範例中,[旅館] 索引具有評分設定檔,其 [描述] 欄位比 [位置] 或 [房間] 欄位中的資料更相關五倍。 [類別] 欄位則比 [旅館名稱] 相關兩倍。
評分設定檔也可以包含函式,例如距離或時效性。 函式可提供比單純加權更多的控制,例如,如果您為新文件套用提升,則可以在該文件取得和舊文件相同的評分前,先為其定義提升持續的時間。
評分設定檔的強大優勢在於您可以將其套用至索引,以對所有查詢自動提升所有欄位,而不是提升搜尋要求中的特定字詞。
新增加權評分設定檔
您最多可以將 100 個評分設定檔新增至搜尋索引。 建立評分設定檔最簡單的方式就是透過 Azure 入口網站。
- 瀏覽至您的搜尋服務。
- 依序選取 [索引],然後是要新增評分設定檔的索引。
- 選取 [評分設定檔]。
- 選取 [+ 新增評分設定檔]。
- 在 [設定檔名稱] 中,輸入唯一名稱。
- 若要將評分設定檔設為要套用至所有搜尋的預設設定,請選取 [設為預設設定檔]。
- 在 [欄位名稱] 中,選取欄位。 然後,在 [權數] 中輸入權數值。
- 選取儲存。
在上述範例中,boost-category
評分設定檔已新增至 hotels-sample-index
。 [類別] 的權數為五。
設定檔也已設定為預設設定檔。 您可以使用此搜尋查詢:
search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full
結果現在會與具有字詞提升的相同查詢相符:
search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full
您可以透過附加 &scoringProfile=PROFILE NAME
參數來控制要套用至搜尋查詢的評分設定檔。
您也可以使用更新索引 REST API 或在 Azure SDK (例如 Azure SDK for .NET 中的 ScoringProfile 類別) 中,以程式設計方式新增評分設定檔。
在評分設定檔中使用函式
可用來新增至評分設定檔的函式如下:
函式 | 描述 |
---|---|
大小 | 依據數值欄位的值範圍改變分數 |
時效性 | 依據 DateTimeOffset 欄位指定之文件的更新時間改變分數 |
距離 | 依據參考位置與 GeographyPoint 欄位之間的距離改變分數 |
標籤 | 依據文件及查詢中的一般標記值改變分數 |
例如,使用旅館索引時,大小函式可以套用至 [評分] 欄位。 Azure 入口網站將引導您完成每個函式的參數。