فهرست منبع

feat:添加日志上报字段

zhaohaipeng 2 روز پیش
والد
کامیت
c996475340

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

@@ -37,6 +37,8 @@ public class Video {
     public Map<String, Double> scoresMap = new HashMap<>();
     public Map<String, List<String>> pushFromIndex = new HashMap<>();
     public Map<String, Integer> pushFromRank = new HashMap<>();
+    public Map<String, List<Long>> pushFromRankVideo = new HashMap<>();
+
     // 处理后,传给模型的特征
     public Map<String, String> allFeatureMap = new HashMap<>();
     // 原始特征

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

@@ -265,6 +265,7 @@ public class RecommendService {
                 map.put("metaFeatureMap", JSONUtils.toJson(v.getMetaFeatureMap()));
 
                 map.put("pushFromRank", JSONUtils.toJson(v.getPushFromRank()));
+                map.put("pushFromRankVideo", JSONUtils.toJson(v.getPushFromRankVideo()));
                 map.put("abExpCode", JSONUtils.toJson(param.getAbExpCodes()));
 
                 long featureTableSize = 0;

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

@@ -40,6 +40,7 @@ public abstract class RankService {
         if (2 == param.getRecommendType()) {
             tagDuplicateVideos(param);
             List<Video> rovRecallRank = mergeAndRankRovRecall(param);
+            this.addPushFromVideoRank(rovRecallRank);
             return new RankResult(rovRecallRank);
         }
 
@@ -92,6 +93,8 @@ public abstract class RankService {
 
         List<Video> douHotFlowPoolRank = extractAndSort(param, DouHotFlowPoolRecallStrategy.PUSH_FROM);
 
+        this.addPushFromVideoRank(rovRecallRank);
+
         removeDuplicate(param, rovRecallRank, flowPoolRank, douHotFlowPoolRank);
 
 
@@ -103,7 +106,7 @@ public abstract class RankService {
         if (CollectionUtils.isEmpty(param.getRecallResult().getData())) {
             return;
         }
-        // pushFromIndex
+        // pushFromIndex, videoId -> pushFromList
         Map<Long, Set<String>> videoIdPushFromMap = new HashMap<>();
         for (RecallResult.RecallData data : param.getRecallResult().getData()) {
             if (CollectionUtils.isEmpty(data.getVideos())) {
@@ -115,10 +118,11 @@ public abstract class RankService {
             }
         }
 
-        // pushFromRank
+        // pushFromRank pushFrom -> videos
         Map<String, List<Video>> pushFromVideosMap = param.getRecallResult().getData().stream()
                 .collect(Collectors.toMap(RecallResult.RecallData::getPushFrom, result -> result.getVideos() == null
                         ? new ArrayList<>() : result.getVideos(), (v1, v2) -> v2));
+
         for (RecallResult.RecallData data : param.getRecallResult().getData()) {
             if (CollectionUtils.isEmpty(data.getVideos())) {
                 continue;
@@ -265,4 +269,18 @@ public abstract class RankService {
         return false;
     }
 
+    private void addPushFromVideoRank(List<Video> rankVideo) {
+        try {
+            Map<String, List<Long>> pushFromVideoRank = new HashMap<>();
+            for (Video video : rankVideo) {
+                video.setPushFromRankVideo(pushFromVideoRank);
+
+                String pushFrom = video.getPushFrom();
+                List<Long> pushFromVideos = pushFromVideoRank.computeIfAbsent(pushFrom, k -> new ArrayList<>());
+                pushFromVideos.add(video.getVideoId());
+            }
+        } catch (Exception e) {
+            log.error("addPushFromVideoRank ", e);
+        }
+    }
 }