Azure AI 搜尋中的 OData search.score 函式

注意

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

當您在沒有 $orderby 參數的情況下將查詢傳送至 Azure AI 搜尋時,返回的結果會依相關性分數的遞減順序排序。 即使您使用 $orderby,系統預設也會使用相關性分數來打破平手。 不過,有時候使用相關性分數作為初始排序準則,而使用其他準則作為決勝準則會很有用。 本文中的範例示範如何使用 函 search.score 式進行排序。

注意

相關性分數是由相關性排名演算法所計算,範圍會根據您使用的演算法而有所不同。 如需詳細資訊,請參閱 Azure AI 搜尋中的相關性和評分。

語法

search.score的語法在$orderby中為search.score()。 函式 search.score 不會採用任何參數。 對於全文查詢,你可以搭配 asc OR desc 排序順序指定符使用,就像 $orderby 參數中的其他子句一樣。 它可以出現在排序準則清單中的任何位置。

範例

先依 search.score 和 rating 以遞減順序排序飯店,然後再依與指定座標的距離以遞增順序排序,使得在兩家相關性分數和評分相同的飯店之間,距離較近的飯店會排在前面:

    search.score() desc,rating desc,geo.distance(location, geography'POINT(-122.131577 47.678581)') asc

局限性

你不能用 search.score() in $orderby 來做純向量或混合查詢。 服務會以 HTTP 400 InvalidRequestParameter 錯誤拒絕這些請求。 若要更正請求,請從search.score()中移除。

下一步