|
@@ -39,6 +39,8 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM
|
|
|
//-------------------合-------------------
|
|
|
//-------------------逻-------------------
|
|
|
//-------------------辑-------------------
|
|
|
+ Set<Long> setVideo = new HashSet<>();
|
|
|
+ List<Video> rovRecallRank = new ArrayList<>();
|
|
|
|
|
|
List<Video> oldRovs = new ArrayList<>();
|
|
|
oldRovs.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
|
|
@@ -51,22 +53,34 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM
|
|
|
List<Video> v0 = oldRovs.size() <= sizeReturn
|
|
|
? oldRovs
|
|
|
: oldRovs.subList(0, sizeReturn);
|
|
|
- Set<Long> setVideo = new HashSet<>();
|
|
|
+
|
|
|
this.duplicate(setVideo, v0);
|
|
|
setVideo.addAll(v0.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
- List<Video> rovRecallRank = new ArrayList<>(v0);
|
|
|
- //-------------------return相似召回------------------
|
|
|
- List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
|
|
|
- v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
- v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
|
|
|
- rovRecallRank.addAll(v6);
|
|
|
- setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
|
|
|
Matcher matcher = FeatureUtils.getChannelMatcher(param.getRootSourceId());
|
|
|
if (null != matcher && matcher.find() && FeatureUtils.firstLevel(param.getUserShareDepth())) {
|
|
|
- int channelROVN = mergeWeight.getOrDefault("channelROVN", 5.0).intValue();
|
|
|
+ // channel rovn
|
|
|
+ int channelROVN = mergeWeight.getOrDefault("channelROVN", 4.0).intValue();
|
|
|
addRecall(param, channelROVN, ChannelROVRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
+ //-------------------return相似召回------------------
|
|
|
+ List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
|
|
|
+ v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 4.0).intValue(), v6.size()));
|
|
|
+ rovRecallRank.addAll(v6);
|
|
|
+ setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
+ // 老地域
|
|
|
+ rovRecallRank.addAll(v0);
|
|
|
+ // 不排序,直接返回
|
|
|
+ return rovRecallRank;
|
|
|
} else {
|
|
|
+ // 老地域
|
|
|
+ rovRecallRank.addAll(v0);
|
|
|
+ //-------------------return相似召回------------------
|
|
|
+ List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
|
|
|
+ v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
|
|
|
+ rovRecallRank.addAll(v6);
|
|
|
+ setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
//-------------------新地域召回------------------
|
|
|
List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
|
|
|
v1 = v1.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|