简介
计算字段中与查询词匹配的分词词组个数。例子:假设字段title分词之后为:fieldmatchratio使用手册
,查询词分词后为:OpenSearch使用手册
。那么字段title中匹配到的分词词组个数为2。
函数列表
函数原型 | 函数简介 |
FieldTermMatchCount create(OpsScorerInitParams params, CString indexName, CString fieldName) | 工厂函数,构造一个FieldTermMatchCount对象。 |
void setGroupScoreMergeOp(CString opName) | 设置多个query group结果的merge方式,可以是sum和max,默认为sum。 |
double evaluate(OpsScoreParams params) | 计算字段中与查询词匹配的分词词组个数 |
函数详情
FieldTermMatchCount create(OpsScorerInitParams params, CString indexName, CString fieldName)
工厂函数,构造FieldTermMatchCount对象,需要指定待匹配的索引名称和字段名称。参数列表:params — 初始化输入参数,详情请参考OpsScorerInitParams手册。indexName — 待匹配的索引名称,词类型为中文基础分词、自定义分词、单字分词、英文分词、模糊分词,必须是常量。fieldName — 待匹配的字段名,该字段需要为TEXT或者SHORT_TEXT,必须是常量。
void setGroupScoreMergeOp(CString opName)
设置有多个query group时,多个group的分数如何计算。需要在init函数中调用。参数列表:opName — 算子名称,目前支持的算子名称:sum 和 max。sum:表示求和,max:表示求最大值。默认为sum。
double evaluate(OpsScoreParams params)
计算字段中与查询词匹配的分词词组个数。参数列表:params — 算分输入参数,详情请参考OpsScoreParams手册。返回值:返回字段中与查询词匹配的分词词组个数。代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.features.similarity.fieldmatch.FieldTermMatchCount;
class BasicSimilarityScorer {
FieldTermMatchCount _fieldTermMatchCount;
boolean init(OpsScorerInitParams params) {
_fieldTermMatchCount = FieldTermMatchCount.create(params, "title_index", "title");
_fieldTermMatchCount.setGroupScoreMergeOp("max");
return true;
}
double score(OpsScoreParams params) {
return _fieldTermMatchCount.evaluate(params);
}
}