简介

人气分(popularity)是opensearch提供的一个基础排序特征,用于衡量物品的受欢迎程度。popularity在使用之前需要在opensearch中创建并部署人气模型。popularity对象需要在算分插件初始化阶段创建,并在算分阶段调用popularity的算分接口计算每个文档的人气分。

函数列表

函数原型

函数简介

Popularity create(OpsScorerInitParams params, CString modelName)

构造Popularity

Popularity create(OpsScorerInitParams params, CString modelName, float defaultValue)

构造Popularity,并指定默认的人气分

double evaluate(OpsScoreParams params)

获取文档的人气分

函数详情

Popularity create(OpsScorerInitParams params, CString modelName)

构造Popularity对象,需要指定人气模型名称。参数列表:params — 算分输入参数,详情请参考OpsScoreParams手册。modelName — 人气模型名称,在opensearch控制台上创建并部署的人气模型名称,必须是常量。

Popularity create(OpsScorerInitParams params, CString modelName, float defaultValue)

构造Popularity对象,需要指定人气模型名称和默认的人气分。在获取人气分时,由于有些新增的文档可能没有人气分,为了可以让这些新增的文档也有机会展示,可以设置一个默认的人气分。人气分的取值范围为[0, 1],索引defaultValue也需要在此区间。参数列表:params — 算分输入参数,详情请参考OpsScoreParams手册。modelName — 人气模型名称,在opensearch控制台上创建并部署的人气模型名称,必须是常量。defaultValue — 默认的人气分,必须是常量。

double evaluate(OpsScoreParams params)

Popularity算分接口,返回文档的人气分。参数列表: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.algo.Popularity;

class IntelligenceAlgorithmScorer {
    Popularity _pop;
    boolean init(OpsScorerInitParams params) {
        _pop = Popularity.create(params, "pop1", 0.123F); //pop1为人气模型
        return true;
    }

    double score(OpsScoreParams params) {
        return _pop.evaluate(params);
    }
}