简介

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;
    }      
}