Kaynağa Gözat

节假日召回

zhangbo 1 yıl önce
ebeveyn
işleme
753080e7f8

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

@@ -29,54 +29,57 @@ public class FestivalRecallStrategyV1 implements RecallStrategy {
     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);
-        // 2 通过model拿到召回list
-        ScorerPipeline4Recall pipeline = ScorerUtils.getScorerPipeline4Recall("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());
-        }
 
+        // todo sunxiaoyi 这里要写实现功能 节假日 时效性
 
-        long t1 = new Long(System.currentTimeMillis());
-        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
-        filterParam.setForceTruncation(10000);
-        filterParam.setConcurrent(true);
-        filterParam.setNotUsePreView(false);
-        FilterResult filterResult = filterService.filter(filterParam);
-        long t2 = new Long(System.currentTimeMillis());
-        JSONObject obj = new JSONObject();
-        obj.put("name", "RegionRealtimeRecallStrategyV1");
-        obj.put("filter_time", t2-t1);
-        obj.put("provinceCn", provinceCn);
-        obj.put("sizeOld", videoMap.size());
-        List<Video> videosResult = new ArrayList<>();
-        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
-            obj.put("sizeNew", filterResult.getVideoIds().size());
-            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);
-            });
-        }
-        log.info(obj.toString());
-        Collections.sort(videosResult, Comparator.comparingDouble(o -> -o.getRovScore()));
+        // 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("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());
+//        }
+//
+//
+//        long t1 = new Long(System.currentTimeMillis());
+//        FilterParam filterParam = FilterParamFactory.create(param, Lists.newArrayList(videoMap.keySet()));
+//        filterParam.setForceTruncation(10000);
+//        filterParam.setConcurrent(true);
+//        filterParam.setNotUsePreView(false);
+//        FilterResult filterResult = filterService.filter(filterParam);
+//        long t2 = new Long(System.currentTimeMillis());
+//        JSONObject obj = new JSONObject();
+//        obj.put("name", "RegionRealtimeRecallStrategyV1");
+//        obj.put("filter_time", t2-t1);
+//        obj.put("provinceCn", provinceCn);
+//        obj.put("sizeOld", videoMap.size());
+//        List<Video> videosResult = new ArrayList<>();
+//        if (filterResult != null && CollectionUtils.isNotEmpty(filterResult.getVideoIds())) {
+//            obj.put("sizeNew", filterResult.getVideoIds().size());
+//            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);
+//            });
+//        }
+//        log.info(obj.toString());
+//        Collections.sort(videosResult, Comparator.comparingDouble(o -> -o.getRovScore()));
         return videosResult;
     }
     public static final String PUSH_FORM = "recall_strategy_festival";