OpsDoc

更新时间: 2023-12-27 10:49:39

简介

在算分过程中,经常会根据文档中字段的内容给予文档不同的分数,从而控制整个排序结果。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;
    }
}
阿里云首页 智能开放搜索 OpenSearch 相关技术圈