Browse Source

homepage recommend

丁云鹏 1 year ago
parent
commit
d7107f9fa4
22 changed files with 100 additions and 143 deletions
  1. 1 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/AbExpCode.java
  2. 1 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/HomepageRecommendParam.java
  3. 18 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/Video.java
  4. 0 27
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/dto/PageDTO.java
  5. 9 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java
  6. 2 2
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/VideoFilterService.java
  7. 2 2
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankResult.java
  8. 19 29
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java
  9. 3 14
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallResult.java
  10. 14 13
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java
  11. 3 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallStrategy.java
  12. 10 9
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/SpecialRegionRecallStrategy.java
  13. 4 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithLevelRecallStrategy.java
  14. 2 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithLevelScoreRecallStrategy.java
  15. 4 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithScoreRecallStrategy.java
  16. 4 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractRegionRecallStrategy.java
  17. 4 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractVideoRecallStrategy.java
  18. 0 6
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup224HRegionRecallStrategy.java
  19. 0 6
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup248HRegionRecallStrategy.java
  20. 0 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup324HRegionRecallStrategy.java
  21. 0 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup348HRegionRecallStrategy.java
  22. 0 6
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Region24HRegionRecallStrategy.java

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/param/AbExpCode.java → recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/AbExpCode.java

@@ -1,4 +1,4 @@
-package com.tzld.piaoquan.recommend.server.model.param;
+package com.tzld.piaoquan.recommend.server.model;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/param/HomepageRecommendParam.java → recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/HomepageRecommendParam.java

@@ -1,4 +1,4 @@
-package com.tzld.piaoquan.recommend.server.model.param;
+package com.tzld.piaoquan.recommend.server.model;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 18 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/Video.java

@@ -0,0 +1,18 @@
+package com.tzld.piaoquan.recommend.server.model;
+
+import lombok.Data;
+
+/**
+ * @author dyp
+ */
+@Data
+public class Video {
+    private long videoId;
+    private double rovScore;
+    private String pushFrom;
+    private String abCode;
+    private String flowPool;
+    private String level;
+    private String flowPoolAbtestGroup;
+    private boolean inFlowPool;
+}

+ 0 - 27
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/dto/PageDTO.java

@@ -1,27 +0,0 @@
-package com.tzld.piaoquan.recommend.server.model.dto;
-
-/**
- * @author supeng
- * @date 2020/09/01
- */
-public class PageDTO {
-
-    private int pageNum;
-    private int pageSize;
-
-    public int getPageNum() {
-        return pageNum;
-    }
-
-    public void setPageNum(int pageNum) {
-        this.pageNum = pageNum;
-    }
-
-    public int getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
-}

+ 9 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -6,7 +6,10 @@ import com.tzld.piaoquan.recommend.server.gen.common.Result;
 import com.tzld.piaoquan.recommend.server.gen.recommend.HomepageRecommendRequest;
 import com.tzld.piaoquan.recommend.server.gen.recommend.HomepageRecommendResponse;
 import com.tzld.piaoquan.recommend.server.gen.recommend.Video;
-import com.tzld.piaoquan.recommend.server.model.param.HomepageRecommendParam;
+import com.tzld.piaoquan.recommend.server.model.HomepageRecommendParam;
+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.RecallParam;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallService;
@@ -52,6 +55,8 @@ public class RecommendService {
 
     @Autowired
     private RecallService recallService;
+    @Autowired
+    private RankService rankService;
 
     @PostConstruct
     public void init() {
@@ -109,6 +114,9 @@ public class RecommendService {
         RecallParam recallParam = new RecallParam();
         RecallResult recallResult = recallService.recall(recallParam);
 
+        RankParam rankParam = new RankParam();
+        rankParam.setRecallResult(recallResult);
+        RankResult result = rankService.rank(rankParam);
 
 
         return null;

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/VideoFilterService.java

@@ -23,8 +23,8 @@ public class VideoFilterService {
         result.getVideoIds();
 
         //     filter_ = FilterVideos(request_id=self.request_id,
-        //        //                               app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
-        //        //        filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
+        //                                       app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
+        //                filtered_viewed_videos = filter_.filter_videos_status(pool_type='normal')
         return null;
     }
 }

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankResult.java

@@ -1,6 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.rank;
 
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -14,5 +14,5 @@ import java.util.List;
 @NoArgsConstructor
 @AllArgsConstructor
 public class RankResult {
-    private List<RecallResult.RecallData> data;
+    private List<Video> videos;
 }

+ 19 - 29
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -1,6 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.rank;
 
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -29,7 +29,7 @@ public class RankService {
         List<String> videoIdKeys = param.getRecallResult().getRovPoolRecall().stream()
                 .map(t -> param.getRankKeyPrefix() + t.getVideoId())
                 .collect(Collectors.toList());
-        List<RecallResult.RecallData> rov_recall_rank = param.getRecallResult().getRovPoolRecall().stream()
+        List<Video> rov_recall_rank = param.getRecallResult().getRovPoolRecall().stream()
                 .collect(Collectors.toList());
         List<String> video_scores = redisTemplate.opsForValue().multiGet(videoIdKeys);
         if (CollectionUtils.isNotEmpty(video_scores)
@@ -41,7 +41,7 @@ public class RankService {
         }
 
         // rank flow pool recall
-        List<RecallResult.RecallData> flow_recall_rank = param.getRecallResult().getFlowPoolRecall().stream()
+        List<Video> flow_recall_rank = param.getRecallResult().getFlowPoolRecall().stream()
                 .collect(Collectors.toList());
         Collections.sort(flow_recall_rank, Comparator.comparingDouble(o -> -o.getRovScore()));
 
@@ -55,9 +55,9 @@ public class RankService {
         }
 
         Set<Long> flowPoolVideoIds = new HashSet<>();
-        Iterator<RecallResult.RecallData> flowRecallRankIte = flow_recall_rank.iterator();
+        Iterator<Video> flowRecallRankIte = flow_recall_rank.iterator();
         while (flowRecallRankIte.hasNext()) {
-            RecallResult.RecallData data = flowRecallRankIte.next();
+            Video data = flowRecallRankIte.next();
             if (rovTopKVideoIds.contains(data.getVideoId())) {
                 flowRecallRankIte.remove();
             } else {
@@ -65,15 +65,15 @@ public class RankService {
             }
         }
 
-        Iterator<RecallResult.RecallData> rovRecallRankIte = rov_recall_rank.iterator();
+        Iterator<Video> rovRecallRankIte = rov_recall_rank.iterator();
         while (rovRecallRankIte.hasNext()) {
-            RecallResult.RecallData data = rovRecallRankIte.next();
+            Video data = rovRecallRankIte.next();
             if (flowPoolVideoIds.contains(data.getVideoId())) {
                 rovRecallRankIte.remove();
             }
         }
 
-        // 1 取topK
+        // 融合排序
         if (CollectionUtils.isEmpty(rov_recall_rank)) {
             if (param.getSize() < flow_recall_rank.size()) {
                 return new RankResult(flow_recall_rank.subList(0, param.getSize()));
@@ -82,8 +82,7 @@ public class RankService {
             }
         }
 
-        // rov 取topK
-        List<RecallResult.RecallData> datas = new ArrayList<>();
+        List<Video> datas = new ArrayList<>();
         for (int i = 0; i < param.getTopK() && i < rov_recall_rank.size(); i++) {
             datas.add(rov_recall_rank.get(i));
         }
@@ -113,25 +112,16 @@ public class RankService {
                 }
             }
         }
-        //     while i < size - top_K:
-        //        # 随机生成[0, 1)浮点数
-        //        rand = random.random()
-        //        # log_.info('rand: {}'.format(rand))
-        //        if rand < flow_pool_P:
-        //            if flow_recall_rank:
-        //                rank_result.append(flow_recall_rank[0])
-        //                flow_recall_rank.remove(flow_recall_rank[0])
-        //            else:
-        //                rank_result.extend(rov_recall_rank[:size - top_K - i])
-        //                return rank_result[:size], flow_num
-        //        else:
-        //            if rov_recall_rank:
-        //                rank_result.append(rov_recall_rank[0])
-        //                rov_recall_rank.remove(rov_recall_rank[0])
-        //            else:
-        //                rank_result.extend(flow_recall_rank[:size - top_K - i])
-        //                return rank_result[:size], flow_num
-        //        i += 1
+        if (rovPoolIndex >= rov_recall_rank.size()) {
+            for (int i = flowPoolIndex; i < flow_recall_rank.size(); i++) {
+                datas.add(flow_recall_rank.get(i));
+            }
+        }
+        if (flowPoolIndex >= flow_recall_rank.size()) {
+            for (int i = rovPoolIndex; i < rov_recall_rank.size(); i++) {
+                datas.add(rov_recall_rank.get(i));
+            }
+        }
 
         if (param.getSize() < datas.size()) {
             return new RankResult(datas.subList(0, param.getSize()));

+ 3 - 14
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallResult.java

@@ -1,5 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall;
 
+import com.tzld.piaoquan.recommend.server.model.Video;
 import lombok.Data;
 
 import java.util.List;
@@ -9,19 +10,7 @@ import java.util.List;
  */
 @Data
 public class RecallResult {
-    private List<RecallData> rovPoolRecall;
-    private List<RecallData> flowPoolRecall;
+    private List<Video> rovPoolRecall;
+    private List<Video> flowPoolRecall;
     private boolean quickPool;
-
-    @Data
-    public static class RecallData {
-        private long videoId;
-        private double rovScore;
-        private String pushFrom;
-        private String abCode;
-        private String flowPool;
-        private String level;
-        private String flowPoolAbtestGroup;
-        private boolean inFlowPool;
-    }
 }

+ 14 - 13
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -1,6 +1,7 @@
 package com.tzld.piaoquan.recommend.server.service.recall;
 
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -40,10 +41,10 @@ public class RecallService implements ApplicationContextAware {
     public RecallResult recall(RecallParam param) {
         List<RecallStrategy> strategies = getRecallStrategy(param);
         CountDownLatch cdl = new CountDownLatch(strategies.size());
-        List<Future<List<RecallResult.RecallData>>> recallResultFutures = new ArrayList<>(strategies.size());
+        List<Future<List<Video>>> recallResultFutures = new ArrayList<>(strategies.size());
         for (RecallStrategy strategy : strategies) {
-            Future<List<RecallResult.RecallData>> future = pool.submit(() -> {
-                List<RecallResult.RecallData> result = strategy.recall(param);
+            Future<List<Video>> future = pool.submit(() -> {
+                List<Video> result = strategy.recall(param);
                 cdl.countDown();
                 return result;
             });
@@ -62,9 +63,9 @@ public class RecallService implements ApplicationContextAware {
         return merge(recallResultFutures, param);
     }
 
-    private RecallResult merge(List<Future<List<RecallResult.RecallData>>> recallResultFutures, RecallParam param) {
-        List<List<RecallResult.RecallData>> results = new ArrayList<>();
-        for (Future<List<RecallResult.RecallData>> f : recallResultFutures) {
+    private RecallResult merge(List<Future<List<Video>>> recallResultFutures, RecallParam param) {
+        List<List<Video>> results = new ArrayList<>();
+        for (Future<List<Video>> f : recallResultFutures) {
             try {
                 results.add(f.get());
             } catch (Exception e) {
@@ -75,23 +76,23 @@ public class RecallService implements ApplicationContextAware {
 
         // TODO 重构 merge sim recall and return recall
         Set<Long> videoIds = new HashSet<>();
-        List<RecallResult.RecallData> datas = new ArrayList<>();
+        List<Video> datas = new ArrayList<>();
         if (param.getAbCode().equals("60054")
                 || param.getAbCode().equals("60068")
                 || param.getAbCode().equals("60081")
                 || param.getAbCode().equals("60084")) {
             if (results.size() >= 2) {
-                List<RecallResult.RecallData> region_recall = results.get(0);
+                List<Video> region_recall = results.get(0);
                 if (CollectionUtils.isNotEmpty(region_recall)) {
-                    for (RecallResult.RecallData data : region_recall) {
+                    for (Video data : region_recall) {
                         if (!videoIds.contains(data.getVideoId())) {
                             datas.add(data);
                             videoIds.add(data.getVideoId());
                         }
                     }
                 }
-                List<RecallResult.RecallData> simRecall = null;
-                List<RecallResult.RecallData> returnRecall = null;
+                List<Video> simRecall = null;
+                List<Video> returnRecall = null;
                 if (param.getAppType().equals("18") || param.getAppType().equals("19")) {
                     simRecall = results.get(1);
                 } else {
@@ -104,7 +105,7 @@ public class RecallService implements ApplicationContextAware {
                 }
 
                 if (simRecall != null && CollectionUtils.isNotEmpty(simRecall)) {
-                    for (RecallResult.RecallData data : simRecall) {
+                    for (Video data : simRecall) {
                         if (!videoIds.contains(data.getVideoId())) {
                             datas.add(data);
                             videoIds.add(data.getVideoId());
@@ -113,7 +114,7 @@ public class RecallService implements ApplicationContextAware {
                 }
 
                 if (returnRecall != null && CollectionUtils.isNotEmpty(returnRecall)) {
-                    for (RecallResult.RecallData data : returnRecall) {
+                    for (Video data : returnRecall) {
                         if (!videoIds.contains(data.getVideoId())) {
                             datas.add(data);
                             videoIds.add(data.getVideoId());

+ 3 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallStrategy.java

@@ -1,10 +1,12 @@
 package com.tzld.piaoquan.recommend.server.service.recall;
 
+import com.tzld.piaoquan.recommend.server.model.Video;
+
 import java.util.List;
 
 /**
  * @author dyp
  */
 public interface RecallStrategy {
-    List<RecallResult.RecallData> recall(RecallParam param);
+    List<Video> recall(RecallParam param);
 }

+ 10 - 9
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/SpecialRegionRecallStrategy.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.recommend.server.service.recall;
 
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.Dup224HRegionRecallStrategy;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.Dup324HRegionRecallStrategy;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.Region24HRegionRecallStrategy;
@@ -54,7 +55,7 @@ public class SpecialRegionRecallStrategy implements ApplicationContextAware, Rec
 
     }
 
-    public List<RecallResult.RecallData> recall(RecallParam param) {
+    public List<Video> recall(RecallParam param) {
 
         // 1. region recall
         String provinceCode = StringUtils.isNotBlank(param.getProvinceCode())
@@ -83,10 +84,10 @@ public class SpecialRegionRecallStrategy implements ApplicationContextAware, Rec
 
         // execute
         CountDownLatch cdl = new CountDownLatch(strategies.size());
-        List<Future<List<RecallResult.RecallData>>> recallResultFutures = new ArrayList<>(strategies.size());
+        List<Future<List<Video>>> recallResultFutures = new ArrayList<>(strategies.size());
         for (RecallStrategy strategy : strategies) {
-            Future<List<RecallResult.RecallData>> future = pool.submit(() -> {
-                List<RecallResult.RecallData> result = strategy.recall(param);
+            Future<List<Video>> future = pool.submit(() -> {
+                List<Video> result = strategy.recall(param);
                 cdl.countDown();
                 return result;
             });
@@ -101,15 +102,15 @@ public class SpecialRegionRecallStrategy implements ApplicationContextAware, Rec
 
         // 2. 去重
         Set<Long> videoIds = new HashSet<>();
-        List<RecallResult.RecallData> results = new ArrayList<>();
-        for (Future<List<RecallResult.RecallData>> f : recallResultFutures) {
+        List<Video> results = new ArrayList<>();
+        for (Future<List<Video>> f : recallResultFutures) {
             if (results.size() >= param.getSize()) {
                 break;
             }
             try {
-                List<RecallResult.RecallData> datas = f.get();
+                List<Video> datas = f.get();
                 if (CollectionUtils.isNotEmpty(f.get())) {
-                    for (RecallResult.RecallData data : datas) {
+                    for (Video data : datas) {
                         if (!videoIds.contains(data.getVideoId())) {
                             videoIds.add(data.getVideoId());
                             results.add(data);
@@ -126,7 +127,7 @@ public class SpecialRegionRecallStrategy implements ApplicationContextAware, Rec
 
 
         // 3. 对在流量池中存在的视频添加标记字段
-        for (RecallResult.RecallData data : results) {
+        for (Video data : results) {
 
             Long videoId = data.getVideoId();
             String quick_flow_pool_isin_flow_pool_key =

+ 4 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithLevelRecallStrategy.java

@@ -1,11 +1,11 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.google.common.collect.Lists;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
 import com.tzld.piaoquan.recommend.server.service.filter.FlowPoolWithLevelFilterService;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.RandomUtils;
@@ -30,13 +30,13 @@ public abstract class AbstractFlowPoolWithLevelRecallStrategy implements RecallS
     protected FlowPoolWithLevelFilterService flowPoolFilterService;
 
     @Override
-    public List<RecallResult.RecallData> recall(RecallParam param) {
+    public List<Video> recall(RecallParam param) {
         Pair<String, String> flowPoolKeyAndLevel = flowPoolKeyAndLevel(param);
         String flowPoolKey = flowPoolKeyAndLevel.getLeft();
         String level = flowPoolKeyAndLevel.getRight();
 
         int getSize = param.getSize() * 5;
-        List<RecallResult.RecallData> results = new ArrayList<>();
+        List<Video> results = new ArrayList<>();
         List<String> data = redisTemplate.opsForSet().randomMembers(flowPoolKey, getSize);
         if (CollectionUtils.isEmpty(data)) {
             return null;
@@ -53,7 +53,7 @@ public abstract class AbstractFlowPoolWithLevelRecallStrategy implements RecallS
 
         if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
             filterResult.getVideoIds().stream().forEach(vid -> {
-                RecallResult.RecallData recallData = new RecallResult.RecallData();
+                Video recallData = new Video();
                 recallData.setVideoId(vid);
                 recallData.setAbCode(param.getAbCode());
                 recallData.setRovScore(RandomUtils.nextInt(0, 100));

+ 2 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithLevelScoreRecallStrategy.java

@@ -1,6 +1,7 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.google.common.collect.Lists;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
 import com.tzld.piaoquan.recommend.server.service.filter.FlowPoolWithLevelScoreFilterService;
@@ -34,7 +35,7 @@ public abstract class AbstractFlowPoolWithLevelScoreRecallStrategy implements Re
 
         int idx = 0;
         int getSize = param.getSize() * 5;
-        List<RecallResult.RecallData> results = new ArrayList<>();
+        List<Video> results = new ArrayList<>();
 
         Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(flowPoolKey, idx,
                 idx + getSize - 1);

+ 4 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractFlowPoolWithScoreRecallStrategy.java

@@ -1,11 +1,11 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.google.common.collect.Lists;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
 import com.tzld.piaoquan.recommend.server.service.filter.FlowPoolWithScoreFilterService;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -26,12 +26,12 @@ public abstract class AbstractFlowPoolWithScoreRecallStrategy implements RecallS
     protected FlowPoolWithScoreFilterService flowPoolFilterService;
 
     @Override
-    public List<RecallResult.RecallData> recall(RecallParam param) {
+    public List<Video> recall(RecallParam param) {
         String flowPoolKey = flowPoolKey(param);
 
         int idx = 0;
         int getSize = param.getSize() * 5;
-        List<RecallResult.RecallData> results = new ArrayList<>();
+        List<Video> results = new ArrayList<>();
 
         Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(flowPoolKey, idx,
                 idx + getSize - 1);
@@ -54,7 +54,7 @@ public abstract class AbstractFlowPoolWithScoreRecallStrategy implements RecallS
 
         if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
             filterResult.getVideoIds().stream().forEach(vid -> {
-                RecallResult.RecallData recallData = new RecallResult.RecallData();
+                Video recallData = new Video();
                 recallData.setVideoId(vid);
                 recallData.setAbCode(param.getAbCode());
                 recallData.setRovScore(videoScoreMap.get(vid));

+ 4 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractRegionRecallStrategy.java

@@ -2,11 +2,11 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterService;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
 import com.tzld.piaoquan.recommend.server.util.DateUtils;
 import org.apache.commons.collections4.CollectionUtils;
@@ -30,7 +30,7 @@ public abstract class AbstractRegionRecallStrategy implements RecallStrategy {
     protected FilterService filterService;
 
     @Override
-    public List<RecallResult.RecallData> recall(RecallParam param) {
+    public List<Video> recall(RecallParam param) {
 
         String recordKey = recordKey(param);
         String lastVideoKey = lastVideoKey(param);
@@ -77,7 +77,7 @@ public abstract class AbstractRegionRecallStrategy implements RecallStrategy {
         int getSize = param.getSize() * 5;
         int freq = 0;
         String lastVideoId = "";
-        List<RecallResult.RecallData> results = new ArrayList<>();
+        List<Video> results = new ArrayList<>();
         while (results.size() < param.getSize()) {
             freq += 1;
             if (freq > 2) {
@@ -101,7 +101,7 @@ public abstract class AbstractRegionRecallStrategy implements RecallStrategy {
             FilterResult filterResult = filterService.filter(filterParam);
             if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
                 filterResult.getVideoIds().stream().forEach(vid -> {
-                    RecallResult.RecallData recallData = new RecallResult.RecallData();
+                    Video recallData = new Video();
                     recallData.setVideoId(vid);
                     recallData.setAbCode(param.getAbCode());
                     recallData.setRovScore(videoMap.get(vid));

+ 4 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/AbstractVideoRecallStrategy.java

@@ -2,11 +2,11 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
+import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
 import com.tzld.piaoquan.recommend.server.service.filter.VideoFilterService;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
 import lombok.Data;
 import org.apache.commons.collections4.CollectionUtils;
@@ -31,7 +31,7 @@ public abstract class AbstractVideoRecallStrategy implements RecallStrategy {
     protected VideoFilterService simHotItemFilterService;
 
     @Override
-    public List<RecallResult.RecallData> recall(RecallParam param) {
+    public List<Video> recall(RecallParam param) {
 
 
         String recall_key = recallKey(param);
@@ -41,7 +41,7 @@ public abstract class AbstractVideoRecallStrategy implements RecallStrategy {
             return null;
         }
         List<Item> items = JSONObject.parseArray(value, Item.class);
-        List<RecallResult.RecallData> results = new ArrayList<>();
+        List<Video> results = new ArrayList<>();
 
         Map<Long, Double> videoScoreMap = new HashMap<>();
         for (int i = 0; i < items.size() && i < 20; i++) {
@@ -56,7 +56,7 @@ public abstract class AbstractVideoRecallStrategy implements RecallStrategy {
 
         if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
             filterResult.getVideoIds().stream().forEach(vid -> {
-                RecallResult.RecallData recallData = new RecallResult.RecallData();
+                Video recallData = new Video();
                 recallData.setVideoId(vid);
                 recallData.setAbCode(param.getAbCode());
                 recallData.setRovScore(videoScoreMap.get(vid));

+ 0 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup224HRegionRecallStrategy.java

@@ -10,12 +10,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class Dup224HRegionRecallStrategy extends AbstractRegionRecallStrategy {
-    //record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP2_24H
-    //            # 视频列表
-    //            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H
-    //            # mid对应上一次视频记录
-    //            last_video_key_prefix = config_.LAST_VIDEO_FROM_REGION_DUP2_24H_PREFIX
-    //            push_from = config_.PUSH_FROM['rov_recall_24h']
     @Override
     protected String recordKey(RecallParam param) {
         return String.format("recall:last:record:region:dup2:24h:%s:%s", param.getAppType(), param.getMid());

+ 0 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup248HRegionRecallStrategy.java

@@ -10,12 +10,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class Dup248HRegionRecallStrategy extends AbstractRegionRecallStrategy {
-    //  record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP2_48H
-    //            # 视频列表
-    //            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_48H_H
-    //            # mid对应上一次视频记录
-    //            last_video_key_prefix = config_.LAST_VIDEO_FROM_REGION_DUP2_48H_PREFIX
-    //            push_from = config_.PUSH_FROM['rov_recall_48h']
     @Override
     protected String recordKey(RecallParam param) {
         return String.format("recall:last:record:region:dup2:48h:%s:%s", param.getAppType(), param.getMid());

+ 0 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup324HRegionRecallStrategy.java

@@ -10,10 +10,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class Dup324HRegionRecallStrategy extends AbstractRegionRecallStrategy {
-    //record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP3_24H
-    //            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP3_REGION_24H_H
-    //            last_video_key_prefix = config_.LAST_VIDEO_FROM_REGION_DUP3_24H_PREFIX
-    //            push_from = config_.PUSH_FROM['rov_recall_24h_dup']
     @Override
     protected String recordKey(RecallParam param) {
         return String.format("recall:last:record:region:dup3:24h:%s:%s", param.getAppType(), param.getMid());

+ 0 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Dup348HRegionRecallStrategy.java

@@ -10,10 +10,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class Dup348HRegionRecallStrategy extends AbstractRegionRecallStrategy {
-    //  record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP3_48H
-    //            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP3_REGION_48H_H
-    //            last_video_key_prefix = config_.LAST_VIDEO_FROM_REGION_DUP3_48H_PREFIX
-    //            push_from = config_.PUSH_FROM['rov_recall_48h_dup']
     @Override
     protected String recordKey(RecallParam param) {
         return String.format("recall:last:record:region:dup3:48h:%s:%s", param.getAppType(), param.getMid());

+ 0 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/Region24HRegionRecallStrategy.java

@@ -10,12 +10,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class Region24HRegionRecallStrategy extends AbstractRegionRecallStrategy {
-    //record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_REGION_DUP1_24H
-//            # 视频列表
-//            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H
-//            # mid对应上一次视频记录
-//            last_video_key_prefix = config_.LAST_VIDEO_FROM_REGION_DUP1_24H_PREFIX
-//            push_from = config_.PUSH_FROM['rov_recall_region_24h']
     @Override
     protected String recordKey(RecallParam param) {
         return String.format("recall:last:record:region:dup1:24h:%s:%s", param.getAppType(), param.getMid());