簡介
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;
}
}
文檔內容是否對您有幫助?