全部產品
Search
文件中心

OpenSearch:QueryMatchRatio

更新時間:Jul 13, 2024

簡介

計算查詢詞中命中的片語與總片語的比值。OpenSearch支援一個索引中包含多個欄位,檢索時只要查詢詞在其中一個欄位上命中文檔就可以返回。因此QueryMatchRatio有兩種計算方式,一種是查詢詞中在被檢索索引包含的所有欄位上命中的詞與總片語的比值,一種是查詢詞中在被檢索索引包含的某一個欄位上命中的詞與總片語的比值。比如default索引包含title和body兩個欄位,查詢詞為default:'使用手冊',我們可以計算查詢詞中在default索引下所有欄位上(title和body)命中的片語與總片語個數的比值,也可以計算查詢詞只在title或者body上命中的片語與總片語的比值。

函數列表

函數原型

函數簡介

QueryMatchRatio create(OpsScorerInitParams params)

構造QueryMatchRatio,計算查詢詞中在檢索索引下所有欄位上命中的詞與總片語的比值

QueryMatchRatio create(OpsScorerInitParams params, CString indexName)

構造QueryMatchRatio,計算查詢詞中在指定索引下所有欄位上命中的詞與總片語的比值

QueryMatchRatio create(OpsScorerInitParams params, CString indexName, CString fieldName)

構造QueryMatchRatio,計算查詢詞中在指定索引下某個欄位上命中的詞與總片語的比值

void setGroupScoreMergeOp(CString opName)

設定多個query group結果的merge方式,可以是sum和max,預設為sum。

double evaluate(OpsScoreParams params)

計算查詢詞中命中的片語與總片語的比值

函數詳情

QueryMatchRatio(OpsScorerInitParams params)

構造QueryMatchRatio對象,計算查詢詞中在檢索索引下所有欄位上命中的詞與總片語的比值。參數列表:params — 初始化輸入參數,詳情請參考OpsScorerInitParams手冊。

QueryMatchRatio(OpsScorerInitParams params, CString indexName)

構造QueryMatchRatio對象,計算查詢詞中在檢索索引下某一索引上命中的詞與總片語的比值。參數列表:params — 初始化輸入參數,詳情請參考OpsScorerInitParams手冊。indexName — 待匹配的索引名,分詞類型為中文基礎分詞、自訂分詞、單字分詞、英文分詞、模糊分詞,必須是常量。

QueryMatchRatio(OpsScorerInitParams params, CString indexName, CString fieldName)

構造QueryMatchRatio對象,計算查詢詞中在檢索索引下某一索引下的一個欄位上命中的詞與總片語的比值。參數列表:params — 初始化輸入參數,詳情請參考OpsScorerInitParams手冊。indexName — 待匹配的索引名,分詞類型為中文基礎分詞、自訂分詞、單字分詞、英文分詞、模糊分詞,必須是常量。fieldName — 待匹配的欄位名,該欄位包含在索引indexName中。必須是常量。

void setGroupScoreMergeOp(CString opName)

設定多個查詢分組之間分數組合規則,目前僅支援max、sum,如果沒有設定預設多個group分數進行sum。該函數必須在算分外掛程式初始化階段調用。查詢分組是指經過查詢分析處理之後對原始查詢詞進行的擴充,預設只有一個查詢分組。參數列表:opName — 多個查詢分組分數組合規則,目前支援max與sum。

double evaluate(OpsScoreParams params)

計算查詢詞中命中的片語與總片語的比值。參數列表:params — 算分輸入參數,詳情請參考OpsScoreParams手冊。傳回值:返回查詢詞中命中的片語與總片語的比值,取值範圍為[0, 1]。程式碼範例:

package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsRequest;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.features.similarity.querymatch.QueryMatchRatio;

class BasicSimilarityScorer {
    QueryMatchRatio _f1;
    QueryMatchRatio _f2;
    boolean init(OpsScorerInitParams params) {
        _f1 = QueryMatchRatio.create(params, "title_index");
        _f2 = QueryMatchRatio.create(params);
        return true;
    }

    double score(OpsScoreParams params) {
        return _f1.evaluate(params) + _f2.evaluate(params);
    }
}