|
@@ -117,6 +117,7 @@ public class RankService {
|
|
|
if (CollectionUtils.isEmpty(param.getRecallResult().getData())) {
|
|
|
return;
|
|
|
}
|
|
|
+ // pushFromIndex
|
|
|
Map<Long, Set<String>> videoIdPushFromMap = new HashMap<>();
|
|
|
for (RecallResult.RecallData data : param.getRecallResult().getData()) {
|
|
|
if (CollectionUtils.isEmpty(data.getVideos())) {
|
|
@@ -127,6 +128,10 @@ public class RankService {
|
|
|
pushFromSet.add(data.getPushFrom());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // pushFromRank
|
|
|
+ Map<String, List<Video>> pushFromVideosMap = param.getRecallResult().getData().stream()
|
|
|
+ .collect(Collectors.toMap(RecallResult.RecallData::getPushFrom, RecallResult.RecallData::getVideos));
|
|
|
for (RecallResult.RecallData data : param.getRecallResult().getData()) {
|
|
|
if (CollectionUtils.isEmpty(data.getVideos())) {
|
|
|
continue;
|
|
@@ -134,12 +139,29 @@ public class RankService {
|
|
|
for (Video video : data.getVideos()) {
|
|
|
Set<String> pushFromSet = videoIdPushFromMap.get(video.getVideoId());
|
|
|
if (pushFromSet != null && pushFromSet.size() > 0) {
|
|
|
- Map<String, List<String>> map = new HashMap<>();
|
|
|
- pushFromSet.forEach(p -> map.computeIfAbsent(p, k -> new ArrayList<>()));
|
|
|
- video.setPushFromIndex(map);
|
|
|
+ Map<String, List<String>> pushFromIndex = new HashMap<>();
|
|
|
+ Map<String, Integer> pushFromRank = new HashMap<>();
|
|
|
+ pushFromSet.forEach(p -> {
|
|
|
+
|
|
|
+ pushFromIndex.computeIfAbsent(p, k -> new ArrayList<>());
|
|
|
+
|
|
|
+ List<Video> videos = pushFromVideosMap.get(p);
|
|
|
+ if (CollectionUtils.isNotEmpty(videos)) {
|
|
|
+ for (int i = 0; i < videos.size(); i++) {
|
|
|
+ if (Objects.equals(videos.get(i).getVideoId(), video.getVideoId())) {
|
|
|
+ pushFromRank.put(p, i);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ video.setPushFromIndex(pushFromIndex);
|
|
|
+ video.setPushFromRank(pushFromRank);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void rankFilter(RankParam param, List<Video> rovRecallRank, List<Video> flowPoolRank) {
|