|
@@ -65,7 +65,28 @@ public class RankService {
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+ // 1 通过 apptype 判断该小程序走怎样的排序策略。
|
|
|
|
+ if (param.getAppType() == AppTypeEnum.PIAO_QUAN_MEIHAO_ZHUFU.getCode()){
|
|
|
|
+ List<Video> results = new ArrayList<>();
|
|
|
|
+ results.addAll(extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM));
|
|
|
|
+ List<String> videoIdKeys = results.stream()
|
|
|
|
+ .map(t -> param.getRankKeyPrefix() + t.getVideoId())
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ List<String> videoScores = redisTemplate.opsForValue().multiGet(videoIdKeys);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(videoScores)
|
|
|
|
+ && videoScores.size() == results.size()) {
|
|
|
|
+ for (int i = 0; i < videoScores.size(); i++) {
|
|
|
|
+ results.get(i).setSortScore(NumberUtils.toDouble(videoScores.get(i), 0.0));
|
|
|
|
+ }
|
|
|
|
+ Collections.sort(results, Comparator.comparingDouble(o -> -o.getSortScore()));
|
|
|
|
+ }
|
|
|
|
+ results.addAll(extractAndSort(param, RegionRealtimeRecallStrategyV2.PUSH_FORM));
|
|
|
|
+ results.addAll(extractAndSort(param, RegionRealtimeRecallStrategyV3.PUSH_FORM));
|
|
|
|
+ removeDuplicate(results);
|
|
|
|
+ return new RankResult(results);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ // 2 正常走分发 排序+冷启动
|
|
List<Video> rovRecallRank = mergeAndRankRovRecall(param);
|
|
List<Video> rovRecallRank = mergeAndRankRovRecall(param);
|
|
// log.info("mergeAndRankRovRecall rovRecallRank={}", JSONUtils.toJson(rovRecallRank));
|
|
// log.info("mergeAndRankRovRecall rovRecallRank={}", JSONUtils.toJson(rovRecallRank));
|
|
List<Video> flowPoolRank = mergeAndRankFlowPoolRecall(param);
|
|
List<Video> flowPoolRank = mergeAndRankFlowPoolRecall(param);
|
|
@@ -90,14 +111,7 @@ public class RankService {
|
|
public List<Video> mergeAndRankRovRecall(RankParam param) {
|
|
public List<Video> mergeAndRankRovRecall(RankParam param) {
|
|
// TODO ab test
|
|
// TODO ab test
|
|
// TODO 抽象成Strategy
|
|
// TODO 抽象成Strategy
|
|
-// boolean hitTest = newRankSwitch
|
|
|
|
-// || CommonCollectionUtils.contains(param.getAbExpCodes(), newRankAbExpCode);
|
|
|
|
-// if (hitTest) {
|
|
|
|
-// return mergeAndRankRovRecallNew(param);
|
|
|
|
-// } else {
|
|
|
|
-// return mergeAndRankRovRecallOld(param);
|
|
|
|
-// }
|
|
|
|
- // 研发重写了代码,直接走新逻辑
|
|
|
|
|
|
+
|
|
return mergeAndRankRovRecallOld(param);
|
|
return mergeAndRankRovRecallOld(param);
|
|
}
|
|
}
|
|
|
|
|