Browse Source

remove unused recall strategy

丁云鹏 3 months ago
parent
commit
f6f8817d00
28 changed files with 0 additions and 1846 deletions
  1. 0 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java
  2. 0 5
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV569.java
  3. 0 72
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/DahanRecallStrategy.java
  4. 0 83
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/FestivalRecallStrategyV1.java
  5. 0 38
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionHWithoutDupRecallStrategy.java
  6. 0 106
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV1_default.java
  7. 0 96
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV1_sort.java
  8. 0 67
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV2.java
  9. 0 68
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV2_sort.java
  10. 0 74
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3.java
  11. 0 84
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3_default.java
  12. 0 74
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3_sort.java
  13. 0 66
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV4.java
  14. 0 67
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV5HighValue.java
  15. 0 93
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV6RootRov.java
  16. 0 65
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV1.java
  17. 0 65
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV2.java
  18. 0 65
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV3.java
  19. 0 65
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV4.java
  20. 0 35
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRelative48HDupRecallStrategy.java
  21. 0 35
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRelative48HRecallStrategy.java
  22. 0 73
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/ShareDeepRecallStrategy.java
  23. 0 73
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/ShareWidthRecallStrategy.java
  24. 0 23
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/SimHotVideoRecallStrategy.java
  25. 0 237
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/TitleTagRecallStrategyV1.java
  26. 0 24
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/TopGoodPerformanceVideoRecallStrategy.java
  27. 0 4
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/xxl/NotUserUploadUserCacheJob.java
  28. 0 88
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/xxl/SyncFlowPoolRecentTopVideoJob.java

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

@@ -589,7 +589,6 @@ public class RecommendService {
         consumer.accept(Region24HRecallStrategy.PUSH_FORM);
         consumer.accept(RegionRelative24HRecallStrategy.PUSH_FORM);
         consumer.accept(RegionRelative24HDupRecallStrategy.PUSH_FORM);
-        consumer.accept(RegionHWithoutDupRecallStrategy.PUSH_FORM);
     }
 
 }

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

@@ -56,7 +56,6 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
 
 
         //-------------------相关性召回 融合+去重-------------------
-        List<Video> v5 = extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM);
         List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
         this.duplicate(setVideo, v5);
         this.duplicate(setVideo, v6);
@@ -66,16 +65,12 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
         //-------------------地域相关召回 融合+去重-------------------
         List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
         this.duplicate(setVideo, v1);
-        //-------------------节日扶持召回 融合+去重-------------------
-        List<Video> v7 = extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM);
-        this.duplicate(setVideo, v7);
         List<Video> rovRecallRank = new ArrayList<>();
         rovRecallRank.addAll(v0);
         rovRecallRank.addAll(v5.subList(0, Math.min(mergeWeight.getOrDefault("v5", 5.0).intValue(), v5.size())));
         rovRecallRank.addAll(v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size())));
         rovRecallRank.addAll(v9.subList(0, Math.min(mergeWeight.getOrDefault("v9", 0.0).intValue(), v9.size())));
         rovRecallRank.addAll(v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 5.0).intValue(), v1.size())));
-        rovRecallRank.addAll(v7.subList(0, Math.min(mergeWeight.getOrDefault("v7", 5.0).intValue(), v7.size())));
 
         //-------------------排-------------------
         //-------------------序-------------------

+ 0 - 72
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/DahanRecallStrategy.java

@@ -1,72 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.google.common.reflect.TypeToken;
-import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.filter.FilterResult;
-import com.tzld.piaoquan.recommend.server.service.recall.FilterParamFactory;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import com.tzld.piaoquan.recommend.server.util.DateUtils;
-import com.tzld.piaoquan.recommend.server.util.JSONUtils;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.springframework.data.redis.core.ZSetOperations;
-import org.springframework.stereotype.Service;
-
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 不区分地域小时(不做离线去重)
- *
- * @author dyp
- */
-@Service
-public class DahanRecallStrategy extends AbstractRegionRecallStrategy {
-    public static final String PUSH_FORM = "dahan_recall";
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        List<Video> results = new ArrayList<>();
-
-        List<Long> ss = new ArrayList<>(Arrays.asList(10409992L, 10436156L, 18160019L, 18247521L, 18254840L));
-        ss.stream().forEach(vid -> {
-            Video video = new Video();
-            video.setVideoId(vid);
-            video.setAbCode(param.getAbCode());
-            video.setRovScore(Math.random());
-            video.setPushFrom(pushFrom());
-            video.setLastVideoKey("zhangbo");
-            results.add(video);
-        });
-
-
-
-        Collections.sort(results, Comparator.comparingDouble(o -> -o.getRovScore()));
-
-        return results;
-    }
-    @Override
-    protected String recordKey(RecallParam param) {
-        return String.format("recall:last:record:h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    protected String poolKey(RecallParam param, String now_dt, int h) {
-        // hard code  因为生产任务,会给region填充默认值-1
-        return String.format("recall:item:score:h:%s:%s:%s:%s",
-                param.getDataKey(), param.getRuleKey(), now_dt, h);
-    }
-
-    @Override
-    protected String lastVideoKey(RecallParam param) {
-        return String.format("LAST_VIDEO_KEY_FORMAT", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 83
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/FestivalRecallStrategyV1.java

@@ -1,83 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.alibaba.fastjson.JSONObject;
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Component
-public class FestivalRecallStrategyV1 implements RecallStrategy {
-
-    public static final String PUSH_FORM = "recall_strategy_festival";
-
-    @Value("${yearly_festival_recall_time_range:}")
-    private String yearlyFestivalTimeRange;
-    @Autowired
-    private RegionFilterService filterService;
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null) {
-            provinceCn = "中国";
-        } else {
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("region_province", provinceCn);
-        param4Model.put("yearly_festival_time_range", yearlyFestivalTimeRange);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_score_config_festival.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        Collections.sort(videosResult, Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-
-}

+ 0 - 38
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionHWithoutDupRecallStrategy.java

@@ -1,38 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-/**
- * 不区分地域小时(不做离线去重)
- *
- * @author dyp
- */
-@Service
-public class RegionHWithoutDupRecallStrategy extends AbstractRegionRecallStrategy {
-    public static final String PUSH_FORM = "rov_recall_h_h_without_dup";
-    public static final String LAST_VIDEO_KEY_FORMAT = "recall:last:item:h:%s:%s";
-
-    @Override
-    protected String recordKey(RecallParam param) {
-        return String.format("recall:last:record:h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    protected String poolKey(RecallParam param, String now_dt, int h) {
-        // hard code  因为生产任务,会给region填充默认值-1
-        return String.format("recall:item:score:h:%s:%s:%s:%s",
-                param.getDataKey(), param.getRuleKey(), now_dt, h);
-    }
-
-    @Override
-    protected String lastVideoKey(RecallParam param) {
-        return String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType(), param.getMid());
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 106
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV1_default.java

@@ -1,106 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Component
-public class RegionRealtimeRecallStrategyV1_default implements RecallStrategy {
-    private final String CLASS_NAME = this.getClass().getSimpleName();
-    @Autowired
-    private RegionFilterService filterService;
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        long t0 = System.currentTimeMillis();
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null) {
-            // provinceCn = "中国";
-            return new ArrayList<>();
-        } else {
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        final Set<String> provinceCns = new HashSet<>(Arrays.asList(
-                "北京", "天津", "河北", "山西", "内蒙古", "辽宁", "吉林",
-                "黑龙江", "上海", "江苏", "浙江", "安徽", "福建", "江西",
-                "山东", "河南", "湖北", "湖南", "广东", "广西", "海南",
-                "重庆", "四川", "贵州", "云南", "西藏", "陕西", "甘肃",
-                "青海", "宁夏", "新疆", "台湾", "香港", "澳门", "中国"
-        ));
-        if (!provinceCns.contains(provinceCn)) {
-            return new ArrayList<>();
-        }
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("region_province", provinceCn);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v1.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        long t1 = System.currentTimeMillis();
-        // 3 召回内部过滤
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        List<Long> videosResultId = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-                videosResultId.add(vid);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-
-    public static final String PUSH_FORM = "recall_strategy_region_1h";
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-
-    public static List<List<Long>> groupKeys(Map<Long, Double> videoMap, int groupSize) {
-        List<List<Long>> result = new ArrayList<>();
-        List<Long> keys = new ArrayList<>(videoMap.keySet());
-
-        int size = keys.size();
-        for (int i = 0; i < size; i += groupSize) {
-            int endIndex = Math.min(i + groupSize, size);
-            List<Long> group = keys.subList(i, endIndex);
-            result.add(group);
-        }
-
-        return result;
-    }
-
-}

+ 0 - 96
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV1_sort.java

@@ -1,96 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Component
-public class RegionRealtimeRecallStrategyV1_sort implements RecallStrategy {
-    private final String CLASS_NAME = this.getClass().getSimpleName();
-    @Autowired
-    private RegionFilterService filterService;
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        long t0 = System.currentTimeMillis();
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null) {
-            provinceCn = "中国";
-        } else {
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        Map<String, String> param4Model = new HashMap<>(2);
-        param4Model.put("region_province", provinceCn);
-        param4Model.put("sort", "1");
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v1_vov.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        long t1 = System.currentTimeMillis();
-        // 3 召回内部过滤
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        List<Long> videosResultId = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-                videosResultId.add(vid);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-
-    public static final String PUSH_FORM = "recall_strategy_region_1h";
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-
-    public static List<List<Long>> groupKeys(Map<Long, Double> videoMap, int groupSize) {
-        List<List<Long>> result = new ArrayList<>();
-        List<Long> keys = new ArrayList<>(videoMap.keySet());
-
-        int size = keys.size();
-        for (int i = 0; i < size; i += groupSize) {
-            int endIndex = Math.min(i + groupSize, size);
-            List<Long> group = keys.subList(i, endIndex);
-            result.add(group);
-        }
-
-        return result;
-    }
-
-}

+ 0 - 67
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV2.java

@@ -1,67 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV2 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-
-        // 2 通过model拿到召回list
-        Map<String, String> param4Model = new HashMap<>(0);
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v2.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        Collections.sort(videosResult, Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_noregion_24h";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 68
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV2_sort.java

@@ -1,68 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV2_sort implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-
-        // 2 通过model拿到召回list
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("sort", "1");
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v2.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        Collections.sort(videosResult, Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_noregion_24h";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 74
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3.java

@@ -1,74 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.alibaba.fastjson.JSONObject;
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV3 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null){
-            provinceCn = "中国";
-        }else{
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("region_province", provinceCn);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v3.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_region_24h";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 84
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3_default.java

@@ -1,84 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV3_default implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null){
-            provinceCn = "中国";
-            return new ArrayList<>();
-        }else{
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        final Set<String> provinceCns = new HashSet<>(Arrays.asList(
-                "北京", "天津", "河北", "山西", "内蒙古", "辽宁", "吉林",
-                "黑龙江", "上海", "江苏", "浙江", "安徽", "福建", "江西",
-                "山东", "河南", "湖北", "湖南", "广东", "广西", "海南",
-                "重庆", "四川", "贵州", "云南", "西藏", "陕西", "甘肃",
-                "青海", "宁夏", "新疆", "台湾", "香港", "澳门", "中国"
-        ));
-        if (!provinceCns.contains(provinceCn)){
-            return new ArrayList<>();
-        }
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("region_province", provinceCn);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v1.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_region_24h";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 74
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV3_sort.java

@@ -1,74 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV3_sort implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null){
-            provinceCn = "中国";
-        }else{
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        Map<String, String> param4Model = new HashMap<>(2);
-        param4Model.put("region_province", provinceCn);
-        param4Model.put("sort", "1");
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v3.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_region_24h";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 66
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV4.java

@@ -1,66 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV4 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        // 2 通过model拿到召回list
-        Map<String, String> param4Model = new HashMap<>(0);
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v4.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_rovn_7d";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 67
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV5HighValue.java

@@ -1,67 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo feeds_recall_config_region_v5_highvalue
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV5HighValue implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-
-        // 2 通过model拿到召回list
-        Map<String, String> param4Model = new HashMap<>(0);
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v5_highvalue.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_highvalue";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 93
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV6RootRov.java

@@ -1,93 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo
- */
-@Component
-public class RegionRealtimeRecallStrategyV6RootRov implements RecallStrategy {
-    private final String CLASS_NAME = this.getClass().getSimpleName();
-    @Autowired
-    private RegionFilterService filterService;
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        long t0 = System.currentTimeMillis();
-        // 1 获取省份key 放入参数map中
-        String provinceCn = param.getProvince();
-        if (provinceCn == null) {
-            provinceCn = "中国";
-        } else {
-            provinceCn = provinceCn.replaceAll("省$", "");
-        }
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("region_province", provinceCn);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v6_rootrov.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        long t1 = System.currentTimeMillis();
-        // 3 召回内部过滤
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-
-    public static final String PUSH_FORM = "recall_strategy_root_rov";
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-
-    public static List<List<Long>> groupKeys(Map<Long, Double> videoMap, int groupSize) {
-        List<List<Long>> result = new ArrayList<>();
-        List<Long> keys = new ArrayList<>(videoMap.keySet());
-
-        int size = keys.size();
-        for (int i = 0; i < size; i += groupSize) {
-            int endIndex = Math.min(i + groupSize, size);
-            List<Long> group = keys.subList(i, endIndex);
-            result.add(group);
-        }
-
-        return result;
-    }
-
-}

+ 0 - 65
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV1.java

@@ -1,65 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo feeds_recall_config_region_v5_highvalue
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV7VovLongTermV1 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("t_2_8", "50");
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v7_vov_longterm.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_vov_longterm_v1";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 65
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV2.java

@@ -1,65 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo feeds_recall_config_region_v5_highvalue
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV7VovLongTermV2 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("t_9_36", "50");
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v7_vov_longterm.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_vov_longterm_v2";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 65
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV3.java

@@ -1,65 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo feeds_recall_config_region_v5_highvalue
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV7VovLongTermV3 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("t_37_90", "50");
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v7_vov_longterm.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_vov_longterm_v3";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 65
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRealtimeRecallStrategyV7VovLongTermV4.java

@@ -1,65 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author zhangbo feeds_recall_config_region_v5_highvalue
- */
-@Slf4j
-@Component
-public class RegionRealtimeRecallStrategyV7VovLongTermV4 implements RecallStrategy {
-    @Autowired
-    protected RegionFilterService filterService;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("t_91_365", "50");
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_recall_config_region_v7_vov_longterm.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i=1; i<results.size(); ++i){
-            result.addAll(results.get(i));
-        }
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        for (Pair<Long, Double> v: result){
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                video.setRovScore(videoMap.get(vid));
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-        videosResult.sort(Comparator.comparingDouble(o -> -o.getRovScore()));
-        return videosResult;
-    }
-    public static final String PUSH_FORM = "recall_strategy_vov_longterm_v4";
-    @Override
-    public String pushFrom(){
-        return PUSH_FORM;
-    }
-
-}

+ 0 - 35
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRelative48HDupRecallStrategy.java

@@ -1,35 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-/**
- * 分地域24h
- *
- * @author dyp
- */
-@Service
-public class RegionRelative48HDupRecallStrategy extends AbstractRegionRecallStrategy {
-    public static final String PUSH_FORM = "rov_recall_48h_dup";
-
-    @Override
-    protected String recordKey(RecallParam param) {
-        return String.format("recall:last:record:region:dup3:48h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    protected String poolKey(RecallParam param, String now_dt, int h) {
-        return String.format("recall:item:score:region:dup3:48h:%s:%s:%s:%s:%s", StringUtils.isBlank(param.getRegionCode()) ? -1 : param.getRegionCode(), param.getDataKey(), param.getRuleKey(), now_dt, h);
-    }
-
-    @Override
-    protected String lastVideoKey(RecallParam param) {
-        return String.format("recall:last:item:region:dup3:48h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 35
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionRelative48HRecallStrategy.java

@@ -1,35 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-/**
- * 分地域24h
- *
- * @author dyp
- */
-@Service
-public class RegionRelative48HRecallStrategy extends AbstractRegionRecallStrategy {
-    public static final String PUSH_FORM = "recall_pool_48h";
-
-    @Override
-    protected String recordKey(RecallParam param) {
-        return String.format("recall:last:record:region:dup2:48h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    protected String poolKey(RecallParam param, String now_dt, int h) {
-        return String.format("recall:item:score:region:dup2:48h:%s:%s:%s:%s:%s", StringUtils.isBlank(param.getRegionCode()) ? -1 : param.getRegionCode(), param.getDataKey(), param.getRuleKey(), now_dt, h);
-    }
-
-    @Override
-    protected String lastVideoKey(RecallParam param) {
-        return String.format("recall:last:item:region:dup2:48h:%s:%s", param.getAppType(), param.getMid());
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 73
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/ShareDeepRecallStrategy.java

@@ -1,73 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author sunxy
- */
-@Component
-public class ShareDeepRecallStrategy implements RecallStrategy {
-
-    @Value("${ShareDeepRecallStrategyRecallNumber:500}")
-    private String shareDeepRecallStrategyRecallNumber;
-    @Value("${ShareDeepRecallStrategyRecallNumberAfterFilter:20}")
-    private String shareDeepRecallStrategyRecallNumberAfterFilter;
-
-    public static final String PUSH_FORM = "share_deep_recall_strategy";
-
-    @Autowired
-    private RegionFilterService filterService;
-
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("limit", shareDeepRecallStrategyRecallNumber);
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_score_config_share_deep.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream()
-                    .sorted(Comparator.comparingDouble(vid -> videoMap.getOrDefault(vid, 0.0)).reversed())
-                    .limit(Integer.parseInt(shareDeepRecallStrategyRecallNumberAfterFilter)).forEach(vid -> {
-                        Video video = new Video();
-                        video.setVideoId(vid);
-                        video.setAbCode(param.getAbCode());
-                        video.setPushFrom(pushFrom());
-                        videosResult.add(video);
-                    });
-        }
-        return videosResult;
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 73
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/ShareWidthRecallStrategy.java

@@ -1,73 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.collect.Lists;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.service.score.ScorerUtils;
-import com.tzld.piaoquan.recommend.server.service.score4recall.ScorerPipeline4Recall;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @author sunxy
- */
-@Component
-public class ShareWidthRecallStrategy implements RecallStrategy {
-
-    @Value("${ShareDeepRecallStrategyRecallNumber:500}")
-    private String shareDeepRecallStrategyRecallNumber;
-    @Value("${ShareDeepRecallStrategyRecallNumberAfterFilter:20}")
-    private String shareDeepRecallStrategyRecallNumberAfterFilter;
-
-    public static final String PUSH_FORM = "share_width_recall_strategy";
-
-    @Autowired
-    private RegionFilterService filterService;
-
-
-    @Override
-    public List<Video> recall(RecallParam param) {
-        Map<String, String> param4Model = new HashMap<>(1);
-        param4Model.put("limit", shareDeepRecallStrategyRecallNumber);
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("feeds_score_config_share_width.conf");
-        List<List<Pair<Long, Double>>> results = pipeline.recall(param4Model);
-        Map<Long, Double> videoMap = new LinkedHashMap<>();
-        List<Pair<Long, Double>> result = results.get(0);
-        for (int i = 1; i < results.size(); ++i) {
-            result.addAll(results.get(i));
-        }
-        for (Pair<Long, Double> v : result) {
-            videoMap.put(v.getLeft(), v.getRight());
-        }
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().stream()
-                    .sorted(Comparator.comparingDouble(vid -> videoMap.getOrDefault(vid, 0.0)).reversed())
-                    .limit(Integer.parseInt(shareDeepRecallStrategyRecallNumberAfterFilter)).forEach(vid -> {
-                        Video video = new Video();
-                        video.setVideoId(vid);
-                        video.setAbCode(param.getAbCode());
-                        video.setPushFrom(pushFrom());
-                        videosResult.add(video);
-                    });
-        }
-        return videosResult;
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 23
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/SimHotVideoRecallStrategy.java

@@ -1,23 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import org.springframework.stereotype.Service;
-
-/**
- * @author dyp
- */
-@Service
-public class SimHotVideoRecallStrategy extends AbstractVideoRecallStrategy {
-
-    public static final String PUSH_FORM = "sim_hot_vid_recall";
-
-    @Override
-    String recallKey(RecallParam param) {
-        return String.format("sim_hot_%s", param.getVideoId());
-    }
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-}

+ 0 - 237
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/TitleTagRecallStrategyV1.java

@@ -1,237 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.google.common.reflect.TypeToken;
-import com.tzld.piaoquan.recommend.server.model.Video;
-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.RegionFilterService;
-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.JSONUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * @author zhangbo
- */
-@Component
-@Slf4j
-public class TitleTagRecallStrategyV1 implements RecallStrategy {
-    private final String CLASS_NAME = this.getClass().getSimpleName();
-    @Autowired
-    private RegionFilterService filterService;
-    @Autowired
-    @Qualifier("redisTemplate")
-    public RedisTemplate<String, String> redisTemplate;
-    @Override
-    public List<Video> recall(RecallParam param) {
-        long t0 = System.currentTimeMillis();
-        List<Video> result = new ArrayList<>();
-        // 1 获取头部vid,请求redis得到tag。
-        Long headVid = param.getVideoId();
-        String key1 = "redis:vid_title_tags:" + headVid;
-        String value1 = redisTemplate.opsForValue().get(key1);
-        if (value1 == null || value1.isEmpty()){
-            return result;
-        }
-        Map<String, String> vfMap = new HashMap<>();
-        vfMap = JSONUtils.fromJson(value1, new TypeToken<Map<String, String>>() {}, vfMap);
-        String tags = vfMap.getOrDefault("tags","");
-        if (tags.isEmpty()){
-            return result;
-        }
-        String title = vfMap.getOrDefault("title","");
-        // 2 通过tags请求redis,得到list。
-        List<String> key2 = Arrays.stream(tags.split(",")).map(r -> "redis:tag2vids:"+r).collect(Collectors.toList());
-        List<String> value2 = redisTemplate.opsForValue().multiGet(key2);
-        if (value2 == null || value2.isEmpty()){
-            return result;
-        }
-        // 3 合并多个tag的结果。
-        Map<Long, VideoTmp> vid2Info = new HashMap<>();
-        for (String v2: value2){
-            if (v2 == null || v2.isEmpty()){
-                continue;
-            }
-            vfMap = new HashMap<>();
-            vfMap = JSONUtils.fromJson(v2, new TypeToken<Map<String, String>>() {}, vfMap);
-            List<Long> vids = new ArrayList<>();
-            List<Double> scores = new ArrayList<>();
-            try{
-                vids = Arrays.stream(vfMap.getOrDefault("videoid_arr", "").split(","))
-                        .filter(s -> !s.trim().isEmpty() && s.matches("-?\\d+"))
-                        .map(Long::valueOf).limit(20).collect(Collectors.toList());
-                scores = Arrays.stream(vfMap.getOrDefault("score_arr", "").split(","))
-                        .map(Double::valueOf).limit(20).collect(Collectors.toList());
-            }catch(Exception e){
-                log.error(String.format("json parse is wrong in {}, key={}, error={}", CLASS_NAME, v2, e));
-                vids = new ArrayList<>();
-                scores = new ArrayList<>();
-            }
-            if (vids.size() != scores.size() || vids.isEmpty()){
-                continue;
-            }
-            for (int i = 0; i < vids.size(); ++i){
-                Long id = vids.get(i);
-                if (id.equals(headVid)){
-                    continue;
-                }
-                Double score = scores.get(i);
-                if (vid2Info.containsKey(id)){
-                    VideoTmp videoTmp = vid2Info.get(id);
-                    videoTmp.cnt += 1;
-                    videoTmp.score += score;
-                    vid2Info.put(id, videoTmp);
-                }else{
-                    VideoTmp videoTmp = new VideoTmp();
-                    videoTmp.id = id;
-                    videoTmp.cnt = 1;
-                    videoTmp.score = score;
-                    vid2Info.put(id, videoTmp);
-                }
-            }
-        }
-        if (vid2Info.isEmpty()){
-            return result;
-        }
-
-        List<Map.Entry<Long, VideoTmp>> entries = new ArrayList<>(vid2Info.entrySet());
-        entries.sort(new Comparator<Map.Entry<Long, VideoTmp>>() {
-            @Override
-            public int compare(Map.Entry<Long, VideoTmp> o1, Map.Entry<Long, VideoTmp> o2) {
-                // 先比较cnt,如果cnt相同则比较score,如果score也相同则比较id
-                int cmpCnt = Integer.compare(o2.getValue().cnt, o1.getValue().cnt); // 从大到小
-                if (cmpCnt != 0) {
-                    return cmpCnt;
-                }
-                int cmpScore = Double.compare(o2.getValue().score, o1.getValue().score); // 从大到小
-                if (cmpScore != 0) {
-                    return cmpScore;
-                }
-                return Long.compare(o2.getKey(), o1.getKey()); // 从大到小
-            }
-        });
-        // 现在entries是按照cnt、score、id从大到小排序的,提取key到List<Long>
-        List<Long> sortedKeys = new ArrayList<>();
-        for (Map.Entry<Long, VideoTmp> entry : entries) {
-            sortedKeys.add(entry.getKey());
-        }
-
-        // 4 集体走title匹配过滤,推荐过滤。
-        List<Long> deleteKey = new ArrayList<>();
-        if (!title.isEmpty()){
-            List<String> key3 = sortedKeys.stream().map(r -> "redis:vid_title_tags:"+r).collect(Collectors.toList());
-            List<String> value3 = redisTemplate.opsForValue().multiGet(key3);
-            if (value3 != null && !value3.isEmpty()){
-                int j = 0;
-                for (String v3 : value3){
-                    vfMap = new HashMap<>();
-                    vfMap = JSONUtils.fromJson(v3, new TypeToken<Map<String, String>>() {}, vfMap);
-                    String titleTmp = vfMap.getOrDefault("title","");
-                    if (!titleTmp.isEmpty() && calculateStringSimilarity(title, titleTmp) >= 0.9){
-                        deleteKey.add(sortedKeys.get(j));
-                    }
-                    j++;
-                }
-            }
-        }
-        sortedKeys.removeIf(deleteKey::contains);
-        if (sortedKeys.isEmpty()){
-            return result;
-        }
-
-        FilterParam filterParam = FilterParamFactory.create(param, sortedKeys);
-        FilterResult filterResult = filterService.filter(filterParam);
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            filterResult.getVideoIds().forEach(vid -> {
-                Video video = new Video();
-                video.setVideoId(vid);
-                video.setAbCode(param.getAbCode());
-                double score = 0.0;
-                if (vid2Info.containsKey(vid)){
-                    VideoTmp videoTmp = vid2Info.get(vid);
-                    score = videoTmp.score / videoTmp.cnt;
-                }
-                video.setRovScore(score);
-                video.setPushFrom(pushFrom());
-                videosResult.add(video);
-            });
-        }
-
-        // 5 内部日志打印
-
-        // 6 返回结果
-        return videosResult;
-    }
-
-    public static final String PUSH_FORM = "recall_strategy_title_tag";
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-    static class VideoTmp{
-        Long id;
-        Integer cnt;
-        Double score;
-    }
-
-    public static int calculateLevenshteinDistance(String s1, String s2) {
-        if (s1 == null || s2 == null) {
-            throw new IllegalArgumentException("Strings must not be null");
-        }
-
-        int len0 = s1.length() + 1;
-        int len1 = s2.length() + 1;
-
-        // 创建一个二维数组来保存已经计算过的子问题的解
-        int[][] dp = new int[len0][len1];
-
-        // 初始化第一行和第一列
-        for (int i = 0; i < len0; i++) {
-            dp[i][0] = i;
-        }
-        for (int j = 0; j < len1; j++) {
-            dp[0][j] = j;
-        }
-
-        // 动态规划计算Levenshtein距离
-        for (int i = 1; i < len0; i++) {
-            for (int j = 1; j < len1; j++) {
-                int cost = (s1.charAt(i - 1) == s2.charAt(j - 1)) ? 0 : 1;
-                dp[i][j] = Math.min(
-                        Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1),
-                        dp[i - 1][j - 1] + cost
-                );
-            }
-        }
-
-        return dp[len0 - 1][len1 - 1];
-    }
-
-    // 计算字符串匹配度(0到1之间)
-    public static double calculateStringSimilarity(String s1, String s2) {
-        int distance = calculateLevenshteinDistance(s1, s2);
-        int maxLength = Math.max(s1.length(), s2.length());
-        // 如果maxLength为0,则两个字符串都是空的,返回1表示完全匹配
-        return maxLength == 0 ? 1.0 : 1.0 - ((double) distance / maxLength);
-    }
-
-    public static void main(String[] args) {
-        String s1 = "老年人都来看看那";
-        String s2 = "老年人都来看看";
-        double score = calculateStringSimilarity(s1, s2);
-        System.out.println(score);
-    }
-
-}

+ 0 - 24
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/TopGoodPerformanceVideoRecallStrategy.java

@@ -1,24 +0,0 @@
-package com.tzld.piaoquan.recommend.server.service.recall.strategy;
-
-import com.tzld.piaoquan.recommend.server.common.base.Constant;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
-import org.springframework.stereotype.Service;
-
-/**
- * @author sunxy
- */
-@Service
-public class TopGoodPerformanceVideoRecallStrategy extends AbstractNewContentVideoRecallStrategy {
-
-    public static final String PUSH_FORM = "top_good_performance_video_recall";
-
-    @Override
-    public String pushFrom() {
-        return PUSH_FORM;
-    }
-
-    @Override
-    protected String recallKey(RecallParam param) {
-        return Constant.VIDEO_PERFORMANCE_DATA_REDIS_KEY + PUSH_FORM;
-    }
-}

+ 0 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/xxl/NotUserUploadUserCacheJob.java

@@ -1,12 +1,8 @@
 package com.tzld.piaoquan.recommend.server.xxl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.aliyun.odps.data.Record;
-import com.tzld.piaoquan.recommend.server.common.base.Constant;
 import com.tzld.piaoquan.recommend.server.service.filter.strategy.VideoSourceTypeStrategy;
 import com.tzld.piaoquan.recommend.server.service.odps.ODPSManager;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.FlowPoolLastDayTopRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.TopGoodPerformanceVideoRecallStrategy;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;

+ 0 - 88
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/xxl/SyncFlowPoolRecentTopVideoJob.java

@@ -1,88 +0,0 @@
-package com.tzld.piaoquan.recommend.server.xxl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.aliyun.odps.data.Record;
-import com.tzld.piaoquan.recommend.server.common.base.Constant;
-import com.tzld.piaoquan.recommend.server.service.odps.ODPSManager;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.FlowPoolLastDayTopRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.TopGoodPerformanceVideoRecallStrategy;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xxl.job.core.log.XxlJobLogger;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
-/**
- * @author sunxy
- */
-@Component
-@Slf4j
-public class SyncFlowPoolRecentTopVideoJob {
-
-    @Autowired
-    private ODPSManager odpsManager;
-
-    @Autowired
-    private RedisTemplate<String, String> redisTemplate;
-
-    @XxlJob("syncFlowPoolRecentTopVideo")
-    public ReturnT<String> syncFlowPoolRecentTopVideo(String params) {
-        // 执行 ODPS Sql,获取数据
-        List<Long> videoIds = queryTopVideoIdsByLast6Hour(200);
-        if (CollectionUtils.isEmpty(videoIds)) {
-            XxlJobLogger.log("syncFlowPoolRecentTopVideo, videoIds is empty");
-            return ReturnT.SUCCESS;
-        }
-        XxlJobLogger.log("syncFlowPoolRecentTopVideo, videoIds:{}", videoIds);
-        // 将数据写入 Redis
-        redisTemplate.opsForValue().set(Constant.VIDEO_PERFORMANCE_DATA_REDIS_KEY + FlowPoolLastDayTopRecallStrategy.PUSH_FORM,
-                JSONObject.toJSONString(videoIds), 2, TimeUnit.HOURS);
-        return ReturnT.SUCCESS;
-    }
-
-    private List<Long> queryTopVideoIdsByLast6Hour(Integer topNum) {
-        String sql = "SELECT videoid FROM loghubods.flow_pool_video_info_per_hour " +
-                "WHERE dt = '" + odpsManager.getNowHour() + "' " +
-                "ORDER BY 12hour_return_cnt DESC LIMIT " + topNum + ";";
-        List<Record> records = odpsManager.query(sql);
-        if (records == null || records.size() == 0) {
-            return null;
-        }
-        return records.stream().map(record -> record.getBigint(0)).collect(Collectors.toList());
-    }
-
-    @XxlJob("syncGoodPerformanceVideo")
-    public ReturnT<String> syncGoodPerformanceVideo(String params) {
-        // 执行 ODPS Sql,获取数据
-        List<Long> videoIds = queryGoodPerformanceVideo(100);
-        if (CollectionUtils.isEmpty(videoIds)) {
-            XxlJobLogger.log("syncGoodPerformanceVideo, videoIds is empty");
-            return ReturnT.SUCCESS;
-        }
-        XxlJobLogger.log("syncGoodPerformanceVideo, videoIds:{}", videoIds);
-        // 将数据写入 Redis
-        redisTemplate.opsForValue().set(Constant.VIDEO_PERFORMANCE_DATA_REDIS_KEY + TopGoodPerformanceVideoRecallStrategy.PUSH_FORM,
-                JSONObject.toJSONString(videoIds), 2, TimeUnit.HOURS);
-        return ReturnT.SUCCESS;
-    }
-
-    private List<Long> queryGoodPerformanceVideo(int limit) {
-        String sql = "SELECT videoid FROM loghubods.long_period_good_performance_video " +
-                "WHERE dt = '" + odpsManager.getNowHour() + "' " +
-                "ORDER BY rov DESC LIMIT " + limit + ";";
-        List<Record> records = odpsManager.query(sql);
-        if (records == null || records.size() == 0) {
-            return null;
-        }
-        return records.stream().map(record -> record.getBigint(0)).collect(Collectors.toList());
-    }
-
-
-}