Browse Source

去除兜底机制

wangyunpeng 11 months ago
parent
commit
16e13ac00c

+ 3 - 8
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/filter/FilterService.java

@@ -89,18 +89,13 @@ public class FilterService {
     }
 
     private List<FilterStrategy> getStrategies(FilterParam param) {
-        if (param.isBackup()) {
-            List<FilterStrategy> strategies = new ArrayList<>();
-            strategies.add(ServiceBeanFactory.getBean(HistoryTitleStrategy.class));
-            strategies.add(ServiceBeanFactory.getBean(BadStrategy.class));
-            strategies.add(ServiceBeanFactory.getBean(SensitiveStrategy.class));
-            strategies.add(ServiceBeanFactory.getBean(ColdStartBackupFilterStrategy.class));
-            return strategies;
-        }
         List<FilterStrategy> strategies = new ArrayList<>();
         strategies.add(ServiceBeanFactory.getBean(HistoryTitleStrategy.class));
         strategies.add(ServiceBeanFactory.getBean(BadStrategy.class));
         strategies.add(ServiceBeanFactory.getBean(SensitiveStrategy.class));
+        if (param.isBackup()) {
+            strategies.add(ServiceBeanFactory.getBean(ColdStartBackupFilterStrategy.class));
+        }
         return strategies;
     }
 }

+ 1 - 5
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/rank/strategy/DefaultRankStrategy.java

@@ -139,7 +139,7 @@ public class DefaultRankStrategy implements RankStrategy {
                 if (!contentPool.equals(c.getContentPoolType())) {
                     continue;
                 }
-                if (!similarity(c.getTitle(), titles)) {
+                if (!TitleSimilarCheckUtil.isDuplicateContent(c.getTitle(), titles)) {
                     result.add(c);
                     titles.add(c.getTitle());
                 }
@@ -149,8 +149,4 @@ public class DefaultRankStrategy implements RankStrategy {
         return result;
     }
 
-    private boolean similarity(String title, List<String> titles) {
-        return TitleSimilarCheckUtil.isDuplicateContent(title, titles);
-    }
-
 }

+ 1 - 14
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/rank/strategy/RankV3Strategy.java

@@ -144,15 +144,6 @@ public class RankV3Strategy implements RankStrategy {
             result.addAll(pool.subList(0, Math.min(pool.size(), param.getSize() - result.size())));
         }
 
-        if (result.size() < param.getSize()) {
-            // 兜底
-            pool = param.getBackup();
-            pool = deduplication(pool);
-            log.info("Backup Deduplication {}", JSONUtils.toJson(pool));
-            Collections.shuffle(pool);
-            result.addAll(pool.subList(0, Math.min(pool.size(), param.getSize() - result.size())));
-        }
-
         return new RankResult(result);
     }
 
@@ -174,7 +165,7 @@ public class RankV3Strategy implements RankStrategy {
                 if (!contentPool.equals(c.getContentPoolType())) {
                     continue;
                 }
-                if (!similarity(c.getTitle(), titles)) {
+                if (!TitleSimilarCheckUtil.isDuplicateContent(c.getTitle(), titles)) {
                     result.add(c);
                     titles.add(c.getTitle());
                 }
@@ -184,8 +175,4 @@ public class RankV3Strategy implements RankStrategy {
         return result;
     }
 
-    private boolean similarity(String title, List<String> titles) {
-        return TitleSimilarCheckUtil.isDuplicateContent(title, titles);
-    }
-
 }

+ 1 - 14
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/rank/strategy/RankV4Strategy.java

@@ -141,15 +141,6 @@ public class RankV4Strategy implements RankStrategy {
             result.addAll(pool.subList(0, Math.min(pool.size(), param.getSize() - result.size())));
         }
 
-        if (result.size() < param.getSize()) {
-            // 兜底
-            pool = param.getBackup();
-            pool = deduplication(pool);
-            log.info("Backup Deduplication {}", JSONUtils.toJson(pool));
-            Collections.shuffle(pool);
-            result.addAll(pool.subList(0, Math.min(pool.size(), param.getSize() - result.size())));
-        }
-
         return new RankResult(result);
     }
 
@@ -171,7 +162,7 @@ public class RankV4Strategy implements RankStrategy {
                 if (!contentPool.equals(c.getContentPoolType())) {
                     continue;
                 }
-                if (!similarity(c.getTitle(), titles)) {
+                if (!TitleSimilarCheckUtil.isDuplicateContent(c.getTitle(), titles)) {
                     result.add(c);
                     titles.add(c.getTitle());
                 }
@@ -181,8 +172,4 @@ public class RankV4Strategy implements RankStrategy {
         return result;
     }
 
-    private boolean similarity(String title, List<String> titles) {
-        return TitleSimilarCheckUtil.isDuplicateContent(title, titles);
-    }
-
 }

+ 1 - 2
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recall/RecallService.java

@@ -9,7 +9,6 @@ import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepositor
 import com.tzld.longarticle.recommend.server.repository.entity.aigc.CrawlerMetaArticle;
 import com.tzld.longarticle.recommend.server.repository.entity.crawler.Article;
 import com.tzld.longarticle.recommend.server.service.AccountIndexAvgViewCountService;
-import com.tzld.longarticle.recommend.server.service.recall.strategy.ColdStartBackupRecallStrategy;
 import com.tzld.longarticle.recommend.server.service.recall.strategy.DefaultRecallStrategy;
 import com.tzld.longarticle.recommend.server.service.score.AvgReadDTO;
 import com.tzld.longarticle.recommend.server.util.CommonCollectionUtils;
@@ -104,7 +103,7 @@ public class RecallService implements ApplicationContextAware {
     private List<RecallStrategy> getRecallStrategy(RecallParam param) {
         List<RecallStrategy> strategies = new ArrayList<>();
         strategies.add(strategyMap.get(DefaultRecallStrategy.class.getSimpleName()));
-        strategies.add(strategyMap.get(ColdStartBackupRecallStrategy.class.getSimpleName()));
+//        strategies.add(strategyMap.get(ColdStartBackupRecallStrategy.class.getSimpleName()));
         return strategies;
     }
 

+ 8 - 2
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/util/TitleSimilarCheckUtil.java

@@ -1,5 +1,7 @@
 package com.tzld.longarticle.recommend.server.util;
 
+import org.springframework.util.CollectionUtils;
+
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
@@ -11,16 +13,20 @@ public class TitleSimilarCheckUtil {
 
     public static boolean isDuplicateContent(String title, List<String> existsContentTitle) {
         boolean result = false;
+        if (CollectionUtils.isEmpty(existsContentTitle)) {
+            return result;
+        }
         title = title.trim().replace("\u200b", "");
         for (String existsTitle : existsContentTitle) {
             if (isSimilar(title, existsTitle, SIMILARITY_THRESHOLD)) {
-                return true;
+                result = true;
+                break;
             }
         }
         return result;
     }
 
-    private static boolean isSimilar(String titleA, String titleB, double threshold) {
+    public static boolean isSimilar(String titleA, String titleB, double threshold) {
         if (titleA.isEmpty() || titleB.isEmpty()) {
             return false;
         }