全部產品
Search
文件中心

OpenSearch:OpsRequest

更新時間:Jul 13, 2024

簡介

OpsRequest表示使用者的一次查詢請求,通過OpsRequest可以擷取查詢請求中的各種資訊。目前OpsRequest僅支援擷取OpsKvPairs,使用者在查詢時將自訂的參數添加的kvpairs子句中,在算分時即可通過OpsRequest擷取這些參數。推薦在scorer的初始化階段擷取自訂參數,不要在算分階段擷取。因為算分函數會對每一個參與算分的文檔都會執行一次,在算分階段擷取請求層級的參數會造成很多不必要的計算開銷。

函數列

函數原型

函數簡介

OpsKvPairs getKVPairs()

擷取所有的kvpairs

函數詳情

OpsKvPairs getKVPairs()

擷取所有使用者定義的kvpairs,通過OpsKvPairs,使用者可以擷取自訂的每個參數的具體值。關於OpsKvPairs請參考OpsKvPairs定義。程式碼範例:

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.OpsKvPairs;
class BasicSimilarityScorer {
    long flag;
    boolean init(OpsScorerInitParams params) {
        OpsRequest request = params.getRequest();
        OpsKvPairs kvparis = request.getKVPairs();
        flag = kvparis.getLong("flag"); //假設kvpairs中有一個長整型的flag變數
        return true;
    }

    double score(OpsScoreParams params) {
        if (flag == 1) {
            //do something
        }
        return 0.0;
    }      
}