阿里云首页

FieldTermMatchCount

简介

计算字段中与查询词匹配的分词词组个数。
例子:假设字段title分词之后为:field match ratio 使用 手册,查询词分词后为: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手册
返回值:
返回字段中与查询词匹配的分词词组个数。
代码示例:

  1. package users.scorer;
  2. import com.aliyun.opensearch.cava.framework.OpsScoreParams;
  3. import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
  4. import com.aliyun.opensearch.cava.features.similarity.fieldmatch.FieldTermMatchCount;
  5. class BasicSimilarityScorer {
  6. FieldTermMatchCount _fieldTermMatchCount;
  7. boolean init(OpsScorerInitParams params) {
  8. _fieldTermMatchCount = FieldTermMatchCount.create(params, "title_index", "title");
  9. _fieldTermMatchCount.setGroupScoreMergeOp("max");
  10. return true;
  11. }
  12. double score(OpsScoreParams params) {
  13. return _fieldTermMatchCount.evaluate(params);
  14. }
  15. }
首页 FieldTermMatchCount