瀏覽代碼

Merge branch 'feature/external_increase_fission_v4' of algorithm/recommend-server into master

jiachanghui 4 周之前
父節點
當前提交
acaad50cda

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

@@ -57,21 +57,25 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM
 
         Matcher matcher = FeatureUtils.getChannelMatcher(param.getRootSourceId());
         if (null != matcher && matcher.find() && FeatureUtils.firstLevel(param.getUserShareDepth())) {
-            // 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()));
+            // channel rovn
+            int channelROVN = mergeWeight.getOrDefault("channelROVN", 4.0).intValue();
+            addRecall(param, channelROVN, ChannelROVRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
             // 老地域
             v0 = v0.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
             rovRecallRank.addAll(v0);
             setVideo.addAll(v0.stream().map(Video::getVideoId).collect(Collectors.toSet()));
-            // 不排序,直接返回
-            return rovRecallRank;
+
+            // 是否排序
+            boolean firstLevelRank = mergeWeight.getOrDefault("firstLevelRank", 0D).intValue() > 0;
+            if (!firstLevelRank) {
+                return rovRecallRank;
+            }
         } else {
             // 老地域
             v0 = v0.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());

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

@@ -5,6 +5,7 @@ import com.tzld.piaoquan.recommend.server.common.ThreadPoolFactory;
 import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
 import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
+import com.tzld.piaoquan.recommend.server.util.FeatureUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -19,6 +20,8 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.stream.Collectors;
 
 /**
  * @author dyp
@@ -116,7 +119,12 @@ public class RecallService implements ApplicationContextAware {
             strategies.add(strategyMap.get(HeadProvinceCate2RecallStrategy.class.getSimpleName()));
         }
         if (CollectionUtils.isNotEmpty(abExpCodes) && abExpCodes.contains("568")) {
-            strategies.add(strategyMap.get(ChannelROVRecallStrategy.class.getSimpleName()));
+            Matcher matcher = FeatureUtils.getChannelMatcher(param.getRootSourceId());
+            if (null != matcher && matcher.find() && FeatureUtils.firstLevel(param.getUserShareDepth())) {
+                strategies.add(strategyMap.get(ChannelROVRecallStrategy.class.getSimpleName()));
+                Set<String> filterRecallSet = new HashSet<>(Arrays.asList(RegionRealtimeRecallStrategyV1.PUSH_FORM, SceneCFRovnRecallStrategy.PUSH_FORM, SceneCFRosnRecallStrategy.PUSH_FORM));
+                strategies = strategies.stream().filter(r -> !filterRecallSet.contains(r.pushFrom())).collect(Collectors.toList());
+            }
         }
 
         // 命中用户黑名单不走流量池

+ 2 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/util/FeatureUtils.java

@@ -18,7 +18,8 @@ public class FeatureUtils {
     private static final String goodMorningRegex = "(早安|早上好|早晨好|上午好)";
     private static final String goodAfternoonRegex = "(午安|中午好|下午好)";
     private static final String goodEveningRegex = "(晚安|晚上好)";
-    private static final String channelRegex = "(longArticles_|dyyjs_|touliu_tencent_|touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh)";
+    //private static final String channelRegex = "(longArticles_|dyyjs_|touliu_tencent_|touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh)";
+    private static final String channelRegex = "(dyyjs_|touliu_tencent_)";
     private static final Pattern goodMorningPattern = Pattern.compile(goodMorningRegex);
     private static final Pattern goodAfternoonPattern = Pattern.compile(goodAfternoonRegex);
     private static final Pattern goodEveningPattern = Pattern.compile(goodEveningRegex);