简介
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;
}
}
文档内容是否对您有帮助?