全部产品

Time

简介

Time类提供了一系列与时间操作相关的函数,用户可以通过这些函数获取当前时间,判断一个文档的新旧程度。

函数列表

函数原型 函数简介
static long now() 获取当前时间,返回从1970-01-01 00:00:00到现在的秒数
static float timeliness(long pubTime) 计算时效性分数
static float timelinessMs(long pubTime) 计算时效性分数

函数详情

static long now()

获取当前时间。
返回值:
返回从1970-01-01 00:00:00到现在的秒数。
代码示例:

  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.framework.OpsRequest;
  5. import com.aliyun.opensearch.cava.framework.OpsDoc;
  6. import com.aliyun.opensearch.cava.features.Time;
  7. class BasicSimilarityScorer {
  8. boolean init(OpsScorerInitParams params) {
  9. return true;
  10. }
  11. double score(OpsScoreParams params) {
  12. long current = Time.now();
  13. params.getDoc().trace(current);
  14. return current;
  15. }
  16. }

static float timeliness(long pubTime)

计算文档的时效性分数,用于衡量文档的新旧程度。pubTime越靠近当前时间,时效性分数越大,表示文档越新。
参数列表:
pubTime — 文档更新时间,时间单位为秒。
返回值:
返回文档的失效分,取值范围为[0, 1],如果pubTime小于0或者大于(或者等于)当前时间返回0。
代码示例:

  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.framework.OpsRequest;
  5. import com.aliyun.opensearch.cava.framework.OpsDoc;
  6. import com.aliyun.opensearch.cava.features.Time;
  7. class BasicSimilarityScorer {
  8. boolean init(OpsScorerInitParams params) {
  9. return true;
  10. }
  11. double score(OpsScoreParams params) {
  12. long current = Time.now() - 1;
  13. double score = Time.timeliness(current);
  14. return score;
  15. }
  16. }

static float timelinessMs(long pubTime)

计算文档的时效性分数,用于衡量文档的新旧程度。pubTime越靠近当前时间,时效性分数越大,表示文档越新。
参数列表:
pubTime — 文档更新时间,时间单位为毫秒。
返回值:
返回文档的失效分,取值范围为[0, 1],如果pubTime小于0或者大于(或者等于)当前时间返回0。
代码示例:

  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.framework.OpsRequest;
  5. import com.aliyun.opensearch.cava.framework.OpsDoc;
  6. import com.aliyun.opensearch.cava.features.Time;
  7. class BasicSimilarityScorer {
  8. boolean init(OpsScorerInitParams params) {
  9. return true;
  10. }
  11. double score(OpsScoreParams params) {
  12. long current = (Time.now() - 1) * 1000;
  13. double score = Time.timelinessMs(current);
  14. return score;
  15. }
  16. }