sunxy 1 vuosi sitten
vanhempi
commit
0251ad7bf7

+ 15 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/FestivalStrategy4RankModel.java

@@ -4,9 +4,7 @@ import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.rank.RankParam;
 import com.tzld.piaoquan.recommend.server.service.rank.RankResult;
 import com.tzld.piaoquan.recommend.server.service.rank.RankService;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.FestivalRecallStrategyV1;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.ReturnVideoRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.SimHotVideoRecallStrategy;
+import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -32,6 +30,11 @@ public class FestivalStrategy4RankModel extends RankService {
     @Override
     public List<Video> mergeAndRankRovRecall(RankParam param) {
         List<Video> rovRecallRank = new ArrayList<>();
+        rovRecallRank.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, RegionHDupRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, Region24HRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, RegionRelative24HRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, RegionRelative24HDupRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM));
         List<Video> festivalRecallVideoList = extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM);
@@ -39,14 +42,21 @@ public class FestivalStrategy4RankModel extends RankService {
         if (CollectionUtils.isNotEmpty(festivalRecallVideoList)) {
             rovRecallRank.addAll(festivalRecallVideoList.stream().limit(30).collect(Collectors.toList()));
         }
+        // 补充不分地域小时数据
+        rovRecallRank.addAll(extractAndSort(param, RegionHWithoutDupRecallStrategy.PUSH_FORM));
+        // merge sim recall 和 return recall
+        rovRecallRank.addAll(extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM));
+        // 地域召回要做截取,再做融合排序
         removeDuplicate(rovRecallRank);
+
         // 融合排序
         List<String> videoIdKeys = rovRecallRank.stream()
                 .map(t -> param.getRankKeyPrefix() + t.getVideoId())
                 .collect(Collectors.toList());
         List<String> videoScores = redisTemplate.opsForValue().multiGet(videoIdKeys);
-//        log.info("FestivalStrategy4RankModel mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
-//                JSONUtils.toJson(videoScores));
+//            log.info("rank mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
+//                    JSONUtils.toJson(videoScores));
         if (CollectionUtils.isNotEmpty(videoScores)
                 && videoScores.size() == rovRecallRank.size()) {
             for (int i = 0; i < videoScores.size(); i++) {