简介
在算分过程中,经常会根据文档中字段的内容给予文档不同的分数,从而控制整个排序结果。OpsDoc类封装了一些文档操作接口,通过这些接口用户可以获取文档中的字段。需要注意的是,通过OpsDoc对象获取的字段,必须是出现在控制台上属性字段列表中的字段,并且需要在排序插件init函数中调用OpsDoc的requireAttribute函数提前声明。OpsDoc对象由系统自动创建,用户可以直接使用。
不同于表达式排序,使用cava编写排序脚本需要用户自己输出trace。OpsDoc封装了一系列trace函数支持用户输出各种类型的trace。目前OpsDoc的trace还不支持可变参数,如果用户有多个变量需要输出,需要多次调用trace接口。trace仅支持在搜索测试页面进行查看,正常的查询流量不支持trace功能。需要注意的是,由于cava单请求运行内存又限制,过多的trace会占用大量的运行时内存,所以请用户仅在必要的时候调用trace函数。
函数列表
函数原型 | 函数简介 |
boolean requireAttribute(CString fieldName) | 声明需要在算分过程中需要使用的字段 |
long docFieldLong(CString fieldName) | 获取INT类型字段 |
float docFieldFloat(CString fieldName) | 获取FLOAT类型字段 |
double docFieldDouble(CString fieldName) | 获取DOUBLE类型字段 |
CString docFieldLiteral(CString fieldName) | 获取LITERAL类型字段 |
long[] docFieldLongArray(CString fieldName) | 获取INT_ARRAY类型字段 |
float[] docFieldFloatArray(CString fieldName) | 获取FLOAT_ARRAY类型字段 |
double[] docFieldDoubleArray(CString fieldName) | 获取DOUBLE_ARRAY类型字段 |
CString[] docFieldLiteralArray(CString fieldName) | 获取LITERAL_ARRAY类型字段 |
OpsGeoPoint docFieldGeoPoint(CString fieldName) | 获取GEO_POINT类型字段 |
OpsTimestamp docFieldTimestamp(CString fieldName) | 获取TIMESTAMP类型字段 |
boolean declareLongVariable(CString variableName, boolean needSerialize) | 声明一个long类型变量,该变量可以在后续算分插件中使用,或者在文档中返回 |
boolean declareDoubleVariable(CString variableName, boolean needSerialize) | 声明一个double类型变量,该变量可以在后续算分插件中使用,或者在文档中返回 |
void setLongVariable(CString variableName, long value) | 设置变量的值,变量必须在之前声明过 |
void setDoubleVariable(CString variableName, double value) | 设置变量的值,变量必须在之前声明过 |
long getLongVariable(CString variableName) | 获取long类型的变量的值,变量必须在之前设置过 |
double getDoubleVariable(CString variableName) | 获取double变量的值,变量必须在之前设置过 |
void trace(byte value) | 在算分过程中输出trace信息,内容为byte类型 |
void trace(CString prefix, byte value) | 在算分过程中输出trace信息,内容为byte类型 |
void trace(short value) | 在算分过程中输出trace信息,内容为short类型 |
void trace(CString prefix, short value) | 在算分过程中输出trace信息,内容为short类型 |
void trace(int value) | 在算分过程中输出trace信息,内容为int类型 |
void trace(CString prefix, int value) | 在算分过程中输出trace信息,内容为int类型 |
void trace(long value) | 在算分过程中输出trace信息,内容为long类型 |
void trace(CString prefix, long value) | 在算分过程中输出trace信息,内容为long类型 |
void trace(float value) | 在算分过程中输出trace信息,内容为float类型 |
void trace(CString prefix, float value) | 在算分过程中输出trace信息,内容为float类型 |
void trace(double value) | 在算分过程中输出trace信息,内容为double类型 |
void trace(CString prefix, double value) | 在算分过程中输出trace信息,内容为double类型 |
void trace(CString value) | 在算分过程中输出trace信息,内容为CString类型 |
void trace(CString prefix, CString value) | 在算分过程中输出trace信息,内容为CString类型 |
函数详情
boolean requireAttribute(CString fieldName)
声明算分过程中需要使用的属性字段,该函数只能在scorer init阶段调用。如果字段没有在init阶段声明,在算分过程中无法正确的从文档中取出字段的值。参数列表:fieldName — 属性字段名称,必须是常量。返回值:声明成功返回true,否则返回false。返回false的主要原因是声明的字段不是属性字段。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
CString field1;
boolean ret = params.getDoc().requireAttribute(field1); //field1 必须是常量
ret = params.getDoc().requireAttribute("price"); //ok
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
float floatValue = doc.docFieldFloat("price");
return floatValue;
}
}
long docFieldLong(CString fieldName)
获取INT类型字段的值,返回值为长整型。如果字段为FLOAT或者DOUBLE类型,返回值会对字段取整。如果字段为LITERAL或者ARRAY类型,返回0。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("count");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
long count = doc.docFieldLong("count");
return (double)count;
}
}
float docFieldFloat(CString fieldName)
获取FLOAT类型字段的值,返回值为浮点型。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("count");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
float count = doc.docFieldFloat("count");
return (double)count;
}
}
double docFieldDouble(CString fieldName)
获取DOUBLE类型字段的值,返回值为双精度浮点型。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("count");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double count = doc.docFieldDouble("count");
return count;
}
}
CString docFieldLiteral(CString fieldName)
获取LITERAL类型字段的值,返回值为CString。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("tag");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
CString tag = doc.docFieldLiteral("tag");
if (tag.equals("abc")) {
return 100.0;
}
return 0;
}
}
long[] docFieldLongArray(CString fieldName)
获取INT_ARRAY类型字段的值。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型不匹配(字段类型无法转换或者字段不是数组类型)返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("tags");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
long[] tags = doc.docFieldLongArray("tags");
if (tags != null) {
if (tags.length > 0) {
return (double)tags[0];
}
}
return 0;
}
}
float[] docFieldFloatArray(CString fieldName)
获取FLOAT_ARRAY类型字段的值。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型(字段类型无法转换或者字段不是数组类型)不匹配返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("tags");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
float[] tags = doc.docFieldFloatArray("tags");
if (tags != null) {
if (tags.length > 0) {
return (double)tags[0];
}
}
return 0;
}
}
double[] docFieldDoubleArray(CString fieldName)
获取DOUBLE_ARRAY类型字段的值。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型不匹配(字段类型无法转换或者字段不是数组类型)返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("tags");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double[] tags = doc.docFieldDoubleArray("tags");
if (tags != null) {
if (tags.length > 0) {
return (double)tags[0];
}
}
return 0;
}
}
CString[] docFieldLiteralArray(CString fieldName)
获取LITERAL_ARRAY类型字段的值。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型不匹配(字段类型无法转换或者字段不是数组类型)返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("tags");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
CString[] tags = doc.docFieldLiteralArray("tags");
if (tags != null) {
if (tags.length > 0 && tags[0].equals("abc")) {
return 100.0;
}
}
return 0;
}
}
OpsGeoPoint docFieldGeoPoint(CString fieldName)
获取GEO_POINT类型字段的值,需要显示引用OpsGeoPoint。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型不匹配返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.framework.OpsGeoPoint;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("location");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
OpsGeoPoint location = doc.docFieldGeoPoint("location");
double longitude = location.getLongitude();
if (longitude < 0 || longitude > 180.0) {
return 0;
}
return 1.0;
}
}
OpsTimestamp docFieldTimestamp(CString fieldName)
获取TIMESTAMP类型字段的值,需要显示引用OpsTimestamp。参数列表:fieldName — 属性字段名称,必须是常量。返回值:返回字段的值,如果字段不存在或者类型不匹配返回null。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.framework.OpsTimestamp;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
boolean ret = params.getDoc().requireAttribute("timestamp");
return ret;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
OpsTimestamp timestamp = doc.docFieldTimestamp("timestamp");
return (double)timestamp.getValue();
}
}
boolean declareLongVariable(CString variableName, boolean needSerialize)
声明long类型的变量,主要用于多个插件传递信息或者在结果中返回变量的值,该函数只能在scorer初始化阶段调用,在一个插件中最多只能声明30个变量,超过限制会返回错误。
参数列表:
variableName -- 变量名称,必须是常量
needSerialize -- 是否需要在文档中返回,true/false,必须是常量
返回值:
成功返回true,否则返回false。
代码示例:
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.framework.OpsGeoPoint;
import com.aliyun.opensearch.cava.framework.OpsTimestamp;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return params.getDoc().declareLongVariable("v_int64", true);
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
doc.setLongVariable("v_int64", 100);
long longValue = doc.getLongVariable("v_int64");
doc.trace("long value1: ", longValue);
return 0;
}
}
boolean declareDoubleVariable(CString variableName, boolean needSerialize)
声明double类型的变量,主要用于多个插件传递信息或者在结果中返回变量的值,该函数只能在scorer初始化阶段调用,在一个插件中最多只能声明30个变量,超过限制会返回错误。
参数列表:
variableName -- 变量名称,必须是常量
needSerialize -- 是否需要在文档中返回,true/false,必须是常量
返回值:
成功返回true,否则返回false。
代码示例:
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.framework.OpsGeoPoint;
import com.aliyun.opensearch.cava.framework.OpsTimestamp;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return params.getDoc().declareDoubleVariable("v_double", true);
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
doc.setDoubleVariable("v_double", 100);
long doubleValue = doc.getDoubleVariable("v_double");
doc.trace("double value1: ", doubleValue);
return 0;
}
}
void setLongVariable(CString variableName, long value)
设置long类型变量的值,该函数必须在算分阶段进行调用,而且变量需要在初始化阶段进行声明。
参数列表:
variableName -- 变量名称
value -- 变量的值
void setDoubleVariable(CString variableName, long value)
设置double类型变量的值,该函数必须在算分阶段进行调用,而且变量需要在初始化阶段进行声明。
参数列表:
variableName -- 变量名称
value -- 变量的值
long getLongVariable(CString variableName)
返回long类型变量的值,该函数必须在算分阶段进行调用,而且变量需要在初始化阶段进行声明。
参数列表:
variableName -- 变量名称
返回值:
返回变量的值,如果变量没有声明或者未提前设值,默认返回0。
double getDoubleVariable(CString variableName)
返回double类型变量的值,该函数必须在算分阶段进行调用,而且变量需要在初始化阶段进行声明。如果变量没有声明或者未提前设值,默认返回0。
参数列表:
variableName -- 变量名称
返回值:
返回变量的值,如果变量没有声明或者未提前设值,默认返回0。
void trace(byte value)
输出byte类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
byte value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, byte value)
输出byte类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
byte value = 1;
doc.trace("byte value: ", value);
return 0.0;
}
}
void trace(short value)
输出short类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
short value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, short value)
输出short类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
short value = 1;
doc.trace("short value: ", value);
return 0.0;
}
}
void trace(int value)
输出int类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
int value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, int value)
输出int类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
int value = 1;
doc.trace("int value: ", value);
return 0.0;
}
}
void trace(long value)
输出long类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
long value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, long value)
输出long类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
long value = 1;
doc.trace("long value: ", value);
return 0.0;
}
}
void trace(float value)
输出float类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
float value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, float value)
输出float类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
float value = 1.0;
doc.trace("float value: ", value);
return 0.0;
}
}
void trace(double value)
输出double类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double value = 1;
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, double value)
输出double类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double value = 1.0;
doc.trace("double value: ", value);
return 0.0;
}
}
void trace(CString value)
输出CString类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
CString value = "abc";
doc.trace(value);
return 0.0;
}
}
void trace(CString prefix, CString value)
输出CString类型的trace信息,该信息为文档级别,只在搜索测试时生效。参数列表:prefix — trace前缀,方便查找。value — 需要输出的内容。
代码示例:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
class BasicSimilarityScorer {
boolean init(OpsScorerInitParams params) {
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
CString value = "abc";
doc.trace("CString value: ", value);
return 0.0;
}
}