瀏覽代碼

global info

jch 6 天之前
父節點
當前提交
5163f74ea5
共有 11 個文件被更改,包括 32 次插入47 次删除
  1. 18 2
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java
  2. 3 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankParam.java
  3. 3 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallParam.java
  4. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadCate1STRRecallStrategy.java
  5. 1 8
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadCate2AndChannelRovRecallStrategy.java
  6. 1 6
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadCate2RovRecallStrategy.java
  7. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadCate2STRRecallStrategy.java
  8. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadProvinceCate1RecallStrategy.java
  9. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/HeadProvinceCate2RecallStrategy.java
  10. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/UserCate1RecallStrategy.java
  11. 1 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/UserCate2RecallStrategy.java

+ 18 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -17,6 +17,7 @@ import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolService;
 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.RankRouter;
+import com.tzld.piaoquan.recommend.server.service.rank.bo.UserShareReturnProfile;
 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;
@@ -67,6 +68,8 @@ public class RecommendService {
     private StatisticsLogService statisticsLogService;
     @Autowired
     private TimerLogService timerLogService;
+    @Autowired
+    private FeatureService featureService;
 
     private ThreadLocal<Map<String, Object>> timerLogMapTL = ThreadLocal.withInitial(HashMap::new);
 
@@ -365,14 +368,27 @@ public class RecommendService {
 
     private List<Video> videoRecommend(RecommendParam param) {
         Stopwatch stopwatch = Stopwatch.createStarted();
-        RecallResult recallResult = recallService.recall(convertToRecallParam(param));
+        String vid = String.valueOf(param.getVideoId());
+        UserShareReturnProfile userProfile = featureService.getUserProfile(param.getUid(), param.getMid());
+        Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(vid);
+        // long infoTime = stopwatch.elapsed(TimeUnit.MILLISECONDS);
+        // timerLogMapTL.get().put("infoTime", infoTime);
+        stopwatch.reset().start();
+
+        RecallParam recallParam = convertToRecallParam(param);
+        recallParam.setUserProfile(userProfile);
+        recallParam.setHeadInfo(headVideoInfo);
+        RecallResult recallResult = recallService.recall(recallParam);
 
         long recallTime = stopwatch.elapsed(TimeUnit.MILLISECONDS);
         timerLogMapTL.get().put("recallTime", recallTime);
         // log.info("recallResult={}, videoRecommend recallResult cost={}", recallResult, recallTime);
         stopwatch.reset().start();
 
-        RankResult rankResult = rankRouter.rank(convertToRankParam(param, recallResult));
+        RankParam rankParam = convertToRankParam(param, recallResult);
+        rankParam.setUserProfile(userProfile);
+        rankParam.setHeadInfo(headVideoInfo);
+        RankResult rankResult = rankRouter.rank(rankParam);
 
         long rankTime = stopwatch.elapsed(TimeUnit.MILLISECONDS);
         timerLogMapTL.get().put("rankTime", rankTime);

+ 3 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankParam.java

@@ -1,6 +1,7 @@
 package com.tzld.piaoquan.recommend.server.service.rank;
 
 import com.tzld.piaoquan.recommend.server.model.MachineInfo;
+import com.tzld.piaoquan.recommend.server.service.rank.bo.UserShareReturnProfile;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import lombok.Data;
 
@@ -35,4 +36,6 @@ public class RankParam {
     private int pageNum;
 
     private String channelName;
+    private UserShareReturnProfile userProfile;
+    private Map<String, String> headInfo;
 }

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

@@ -1,8 +1,8 @@
 package com.tzld.piaoquan.recommend.server.service.recall;
 
+import com.tzld.piaoquan.recommend.server.service.rank.bo.UserShareReturnProfile;
 import lombok.Data;
 
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -35,4 +35,6 @@ public class RecallParam {
     private Integer userShareDepth;
 
     private String channelName;
+    private UserShareReturnProfile userProfile;
+    private Map<String, String> headInfo;
 }

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -28,9 +27,6 @@ public class HeadCate1STRRecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final String PUSH_FORM = "recall_strategy_head_cate1_str";
     public static final String redisKeyPrefix = "merge_cate_str_recall:cate1";
 
@@ -47,7 +43,7 @@ public class HeadCate1STRRecallStrategy implements RecallStrategy {
                 return videosResult;
             }
             Long headVid = param.getVideoId();
-            Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(String.valueOf(headVid));
+            Map<String, String> headVideoInfo = param.getHeadInfo();
             if (null != headVideoInfo) {
                 String cate = headVideoInfo.getOrDefault("merge_first_level_cate", "").trim();
                 if (!cate.isEmpty() && !"unknown".equals(cate)) {

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

@@ -2,14 +2,12 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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.FilterParamFactory;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
-import com.tzld.piaoquan.recommend.server.util.FeatureUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
@@ -20,7 +18,6 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
 import java.util.*;
-import java.util.regex.Matcher;
 import java.util.stream.Collectors;
 
 /**
@@ -36,9 +33,6 @@ public class HeadCate2AndChannelRovRecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     @ApolloJsonValue("${head.cate2.channel.rov.recall.param:{}}")
     private Map<String, String> paramJson = new HashMap<>();
 
@@ -56,8 +50,7 @@ public class HeadCate2AndChannelRovRecallStrategy implements RecallStrategy {
         String channelName = param.getChannelName();
 
         // 获取头部视频基础信息
-        String vidStr = String.valueOf(param.getVideoId());
-        Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(vidStr);
+        Map<String, String> headVideoInfo = param.getHeadInfo();
         if (MapUtils.isEmpty(headVideoInfo)) {
             return Collections.emptyList();
         }

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

@@ -2,7 +2,6 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -34,9 +33,6 @@ public class HeadCate2RovRecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     @ApolloJsonValue("${head.cate2.rov.recall.param:{}}")
     private Map<String, String> paramJson;
 
@@ -52,8 +48,7 @@ public class HeadCate2RovRecallStrategy implements RecallStrategy {
         }
 
         // 获取头部视频基础信息
-        String vidStr = String.valueOf(param.getVideoId());
-        Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(vidStr);
+        Map<String, String> headVideoInfo = param.getHeadInfo();
         if (MapUtils.isEmpty(headVideoInfo)) {
             return Collections.emptyList();
         }

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -28,9 +27,6 @@ public class HeadCate2STRRecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final String PUSH_FORM = "recall_strategy_head_cate2_str";
     public static final String redisKeyPrefix = "merge_cate_str_recall:cate2";
 
@@ -47,7 +43,7 @@ public class HeadCate2STRRecallStrategy implements RecallStrategy {
                 return videosResult;
             }
             Long headVid = param.getVideoId();
-            Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(String.valueOf(headVid));
+            Map<String, String> headVideoInfo = param.getHeadInfo();
             if (null != headVideoInfo) {
                 String cate = headVideoInfo.getOrDefault("merge_second_level_cate", "").trim();
                 if (!cate.isEmpty() && !"unknown".equals(cate)) {

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -28,9 +27,6 @@ public class HeadProvinceCate1RecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final String PUSH_FORM = "recall_strategy_head_cate1";
     public static final String redisKeyPrefix = "province_merge_cate_recall:cate1";
 
@@ -47,7 +43,7 @@ public class HeadProvinceCate1RecallStrategy implements RecallStrategy {
                 return videosResult;
             }
             Long headVid = param.getVideoId();
-            Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(String.valueOf(headVid));
+            Map<String, String> headVideoInfo = param.getHeadInfo();
             if (null != headVideoInfo) {
                 String cate = headVideoInfo.getOrDefault("merge_first_level_cate", "").trim();
                 if (!cate.isEmpty() && !"unknown".equals(cate)) {

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -28,9 +27,6 @@ public class HeadProvinceCate2RecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final String PUSH_FORM = "recall_strategy_head_cate2";
     public static final String redisKeyPrefix = "province_merge_cate_recall:cate2";
 
@@ -47,7 +43,7 @@ public class HeadProvinceCate2RecallStrategy implements RecallStrategy {
                 return videosResult;
             }
             Long headVid = param.getVideoId();
-            Map<String, String> headVideoInfo = featureService.getHeadVideoInfo(String.valueOf(headVid));
+            Map<String, String> headVideoInfo = param.getHeadInfo();
             if (null != headVideoInfo) {
                 String cate = headVideoInfo.getOrDefault("merge_second_level_cate", "").trim();
                 if (!cate.isEmpty() && !"unknown".equals(cate)) {

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -32,9 +31,6 @@ public class UserCate1RecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final int topN = 2;
     public static final String PUSH_FORM = "recall_strategy_user_cate1";
     public static final String redisKeyPrefix = "merge_cate_recall:cate1";
@@ -48,7 +44,7 @@ public class UserCate1RecallStrategy implements RecallStrategy {
     public List<Video> recall(RecallParam param) {
         List<Video> videosResult = new ArrayList<>();
         try {
-            UserShareReturnProfile userProfile = featureService.getUserProfile(param.getUid(), param.getMid());
+            UserShareReturnProfile userProfile = param.getUserProfile();
             if (null != userProfile && null != userProfile.getC1_s()) {
                 List<String> keys = getRedisKey(userProfile.getC1_s());
                 if (!keys.isEmpty()) {

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

@@ -1,7 +1,6 @@
 package com.tzld.piaoquan.recommend.server.service.recall.strategy;
 
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.FeatureService;
 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;
@@ -32,9 +31,6 @@ public class UserCate2RecallStrategy implements RecallStrategy {
     @Qualifier("redisTemplate")
     public RedisTemplate<String, String> redisTemplate;
 
-    @Autowired
-    private FeatureService featureService;
-
     public static final int topN = 2;
     public static final String PUSH_FORM = "recall_strategy_user_cate2";
     public static final String redisKeyPrefix = "merge_cate_recall:cate2";
@@ -48,7 +44,7 @@ public class UserCate2RecallStrategy implements RecallStrategy {
     public List<Video> recall(RecallParam param) {
         List<Video> videosResult = new ArrayList<>();
         try {
-            UserShareReturnProfile userProfile = featureService.getUserProfile(param.getUid(), param.getMid());
+            UserShareReturnProfile userProfile = param.getUserProfile();
             if (null != userProfile && null != userProfile.getC2_s()) {
                 List<String> keys = getRedisKey(userProfile.getC2_s());
                 if (!keys.isEmpty()) {