簡介
在算分過程中,經常會根據文檔中字段的內容給予文檔不同的分數,從而控制整個排序結果。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 needSeraialize) | 聲明一個long類型變量,該變量可以在后續算分插件中使用,或者在文檔中返回 |
boolean declareDoubleVariable(CString variableName, boolean needSeraialize) | 聲明一個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 needSeraialize)
聲明long類型的變量,主要用于多個插件傳遞信息或者在結果中返回變量的值,該函數只能在scorer初始化階段調用,在一個插件中最多只能聲明30個變量,超過限制會返回錯誤。
參數列表:
variableName -- 變量名稱,必須是常量
needSeraialize -- 是否需要在文檔中返回,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 needSeraialize)
聲明double類型的變量,主要用于多個插件傳遞信息或者在結果中返回變量的值,該函數只能在scorer初始化階段調用,在一個插件中最多只能聲明30個變量,超過限制會返回錯誤。
參數列表:
variableName -- 變量名稱,必須是常量
needSeraialize -- 是否需要在文檔中返回,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;
}
}