固定評分查詢

更新時間:
Copy as MD

固定評分查詢(ConstScoreQuery)將子查詢封裝為過濾條件,所有命中的文檔統一返回固定的相關性分數(1.0),不再根據 BM25 等演算法計算相關性評分。

介面

固定評分查詢的介面為 Search 或 ParallelScan,Query 類型為 ConstScoreQuery。

參數

參數

說明

filter

內部子查詢條件,支援任意一種 Query 類型(如 MatchQuery、TermQuery、BoolQuery 等)。ConstScoreQuery 僅判斷文檔是否命中該子查詢,命中即返回固定分數 1.0,不參與 BM25 相關性評分計算。

getTotalCount

是否返回匹配的總行數,預設為 false,表示不返回。返回匹配的總行數會影響查詢效能。

tableName

資料表名稱。

indexName

多元索引名稱。

columnsToGet

是否返回所有列,包含 returnAll 和 columns 設定。returnAll 預設為 false,表示不返回所有列;當設定 returnAll 為 true 時,表示返回所有列。在 returnAll 為 false 時,可以通過 columns 指定返回的列,未指定時只返回主鍵列。

適用情境

  • 業務只關心文檔是否命中而不關心相關度排序時,使用 ConstScoreQuery 可消除因文本長度、詞頻等因素導致的評分差異,將排序權交給後續自訂排序邏輯(如 FieldSort、PrimaryKeySort)。

  • 在 BoolQuery 的 mustQueries 中對部分子句使用 ConstScoreQuery 封裝,可消除這些子句的評分貢獻,僅保留其他子句的相關性分數作為最終排序依據。

  • 查詢條件僅用於過濾而非排序時,使用 ConstScoreQuery 可減少不必要的評分計算開銷。

與 BoolQuery filterQueries 的區別

對比項

BoolQuery filterQueries

ConstScoreQuery

評分貢獻

不貢獻任何分數

貢獻固定分數 1.0

使用位置

只能作為 BoolQuery 的 filterQueries 子句

可獨立使用,也可放在 BoolQuery 的 mustQueries 或 shouldQueries 中

典型用途

純過濾,不影響排序

需要佔位評分(如與其他帶評分 query 組合時統一基準分)

使用方式

Tablestore 多元索引同時提供 Java SDK 和 Go SDK 實現固定評分查詢。