| 
					
				 | 
			
			
				@@ -30,56 +30,43 @@ public class FestivalRecallStrategyV1 implements RecallStrategy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<Video> recall(RecallParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // todo sunxiaoyi 这里要写实现功能 节假日 时效性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 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())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> param4Model = new HashMap<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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("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"; 
			 |