在 Azure AI 搜尋服務中搭配語意排名器使用評分設定檔

Note

Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。

您可以將評分設定檔套用至語意排名的搜尋結果,其中評分設定檔會在最後才進行處理。

為了確保評分輪廓能提供決定性的分數,語意排序器會新增一個回應欄位, @search.rerankerBoostedScore該欄位對語義排序的結果套用評分輪廓邏輯。 在包含@search.score第一級排名、@search.rerankerScore語意排名器及@search.rerankerBoostedScore的搜尋結果中,結果依@search.rerankerBoostedScore排序。

先決條件

  • 任何提供語意排序的地區均適用Azure AI 搜尋服務。

  • 具有語意組態的搜尋索引,該組態會指定 "rankingOrder": "boostedRerankerScore",以及指定函式的評分設定檔。

限制

語意排名結果的提升只會套用至評分設定檔函式。 如果評分檔案只包含加權文字欄位,則沒有提升效果。

這種行為適用於直接發送到索引的語意查詢,例如 /docs/search。 代理式擷取不會套用索引的 評分設定檔,包括基礎索引上的 defaultScoringProfile,而且擷取回應也不會顯示 @search.rerankerBoostedScore。 欲了解更多資訊,請參閱 建立搜尋索引知識來源 及 查詢知識庫。

具有評分設定檔的語意組態如何運作?

當你執行與評分檔案相關的語意查詢時,會為搜尋結果中的每份文件產生第三個搜尋分數—— @search.rerankerBoostedScore 值值。 這個提升分數是透過將評分曲線套用到現有重新排名者分數計算出來,並不像一般重排序者分數那樣有保證範圍(0–4),分數可能遠高於4。

預設情況下,如果存在評分設定檔,語意結果會依據 @search.rerankerBoostedScore 排序。 如果未指定屬性 rankingOrder ,則 BoostedRerankerScore 是語意配置中的預設值。

在此情境中,計分設定檔會被使用兩次。

  1. 首先,會在初始 L1 排名階段使用索引中所定義的評分設定檔,以提升下項中的結果:

    • 文字查詢(BM25 或 RRF)
    • 向量查詢的文字部分
    • 結合兩種類型混合查詢
  2. 接著,語意排名器會重新評分前50名的結果,將更具語意相關的匹配推向前列。 此步驟可能會消除評分配置的優勢。 例如,如果您根據新鮮度進行了提升,那麼語意重新排序會以其自身的最相關邏輯來取代該提升。

  3. 最後,評分設定檔會在重新排名後再次套用,還原提升對最終結果順序的影響。 如果您按新鮮度進行提升,則語意排名結果會根據新鮮度重新評分。

在語意組態中啟用評分設定檔

為了啟用語意排名結果的評分配置,請透過設定其語意配置中的屬性來更新索引。 使用 PUT 方法更新索引並加入你的修訂。 不需重新重建指數。

PUT https://{service-name}.search.windows.com/indexes/{index-name}?api-version=2026-04-01
{
  "semantic": {
    "configurations": [
      {
        "name": "mySemanticConfig",
        "rankingOrder": "boostedRerankerScore"
      }
    ]
  }
}

在語意配置中停用評分設定檔

若想取消依語意重新排列增加的分數進行排序,請在語意配置中將 rankingOrder 欄位設為 reRankerScore 值。

PUT /indexes/{index-name}?api-version=2026-04-01
{
  "semantic": {
    "configurations": [
      {
        "name": "mySemanticConfig",
        "rankingOrder": "reRankerScore"
      }
    ]
  }
}

即使你選擇不以排序@search.rerankerBoostedScoreboostedRerankerScore,該欄位仍會出現在回應中,但不再用來排序結果。

範例查詢與回應

先從一個語 意查詢 開始,指定一個評分輪廓。 此查詢會針對已將 rankingOrder 設定為 boostedRerankerScore 的搜尋索引而執行。

POST /indexes/{index-name}/docs/search?api-version=2026-04-01
{
  "search": "my query to be boosted",
  "scoringProfile": "myScoringProfile",
  "queryType": "semantic"
}

回應包含新的 rerankerBoostedScore,以及 L1 @search.score 和 L2 @search.rerankerScore。 結果依序 @search.rerankerBoostedScore排列。

{
  "value": [
    {
      "@search.score": 0.63,
      "@search.rerankerScore": 2.98,
      "@search.rerankerBoostedScore": 7.68,
      "content": "boosted content 2"
    },
    {
      "@search.score": 1.12,
      "@search.rerankerScore": 3.12,
      "@search.rerankerBoostedScore": 5.61,
      "content": "boosted content 1"
    }
  ]
}