新增評分設定檔來改善結果的相關性

已完成

Azure AI 搜尋服務會使用 BM25 相似度排名演算法。 演算法會根據所使用的搜尋字詞來為文件評分。

在這裡,您將了解如何新增評分設定檔,以根據自訂準則來改變文件的分數。

搜尋分數的計算方式

評分是處理搜尋查詢的最後一個階段。

圖表顯示醒目提示的搜尋分數階段。

搜尋引擎會為前三個階段傳回的文件評分。 這個分數是結合所識別搜尋字詞出現在文件中的次數、文件大小,以及每個字詞的罕見度而得的函式。 根據預設,搜尋結果會依搜尋分數排序,由高至低。 如果兩份文件具有相同的搜尋分數,您可以透過新增 $orderby 子句中斷連結。

改善更多相關文件的分數

由於預設評分會以字詞出現頻率和罕見度為作業基準,因此最終計算的分數可能不會傳回最相關文件的最高分數。 每個資料集都不同,因此 AI 搜尋服務可讓您使用評分設定檔影響文件分數。

顯示加權欄位的分數的圖表。

最直接的評分設定檔會為索引中的欄位定義不同的權數。 在上述範例中,[旅館] 索引具有評分設定檔,其 [描述] 欄位比 [位置] 或 [房間] 欄位中的資料更相關五倍。 [類別] 欄位則比 [旅館名稱] 相關兩倍。

評分設定檔也可以包含函式,例如距離或時效性。 函式可提供比單純加權更多的控制,例如,如果您為新文件套用提升,則可以在該文件取得和舊文件相同的評分前,先為其定義提升持續的時間。

評分設定檔的強大優勢在於您可以將其套用至索引,以對所有查詢自動提升所有欄位,而不是提升搜尋要求中的特定字詞。

新增加權評分設定檔

您最多可以將 100 個評分設定檔新增至搜尋索引。 建立評分設定檔最簡單的方式就是透過 Azure 入口網站。

  1. 瀏覽至您的搜尋服務。
  2. 依序選取 [索引],然後是要新增評分設定檔的索引。
  3. 選取 [評分設定檔]。
  4. 選取 [+ 新增評分設定檔]
  5. 在 [設定檔名稱] 中,輸入唯一名稱。
  6. 若要將評分設定檔設為要套用至所有搜尋的預設設定,請選取 [設為預設設定檔]
  7. 在 [欄位名稱] 中,選取欄位。 然後,在 [權數] 中輸入權數值。
  8. 選取儲存

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 入口網站將引導您完成每個函式的參數。

顯示大小函式參數的螢幕擷取畫面。