Explorar o código

外部流量rovn召回调整

jch hai 1 mes
pai
achega
c964809a9c

+ 23 - 9
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV568.java

@@ -39,6 +39,8 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM
         //-------------------合-------------------
         //-------------------逻-------------------
         //-------------------辑-------------------
+        Set<Long> setVideo = new HashSet<>();
+        List<Video> rovRecallRank = new ArrayList<>();
 
         List<Video> oldRovs = new ArrayList<>();
         oldRovs.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
@@ -51,22 +53,34 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM
         List<Video> v0 = oldRovs.size() <= sizeReturn
                 ? oldRovs
                 : oldRovs.subList(0, sizeReturn);
-        Set<Long> setVideo = new HashSet<>();
+
         this.duplicate(setVideo, v0);
         setVideo.addAll(v0.stream().map(Video::getVideoId).collect(Collectors.toSet()));
-        List<Video> rovRecallRank = new ArrayList<>(v0);
-        //-------------------return相似召回------------------
-        List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
-        v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
-        v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
-        rovRecallRank.addAll(v6);
-        setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
 
         Matcher matcher = FeatureUtils.getChannelMatcher(param.getRootSourceId());
         if (null != matcher && matcher.find() && FeatureUtils.firstLevel(param.getUserShareDepth())) {
-            int channelROVN = mergeWeight.getOrDefault("channelROVN", 5.0).intValue();
+            // channel rovn
+            int channelROVN = mergeWeight.getOrDefault("channelROVN", 4.0).intValue();
             addRecall(param, channelROVN, ChannelROVRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
+            //-------------------return相似召回------------------
+            List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
+            v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+            v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 4.0).intValue(), v6.size()));
+            rovRecallRank.addAll(v6);
+            setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
+            // 老地域
+            rovRecallRank.addAll(v0);
+            // 不排序,直接返回
+            return rovRecallRank;
         } else {
+            // 老地域
+            rovRecallRank.addAll(v0);
+            //-------------------return相似召回------------------
+            List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
+            v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+            v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
+            rovRecallRank.addAll(v6);
+            setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
             //-------------------新地域召回------------------
             List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
             v1 = v1.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());