Przeglądaj źródła

add特征画像人群需求视频

wangyunpeng 1 miesiąc temu
rodzic
commit
fc02de1171

+ 8 - 0
core/src/main/java/com/tzld/videoVector/common/enums/DimensionEnum.java

@@ -63,4 +63,12 @@ public enum DimensionEnum {
                 .map(DimensionEnum::getValue)
                 .map(DimensionEnum::getValue)
                 .collect(Collectors.toSet());
                 .collect(Collectors.toSet());
     }
     }
+
+    /** 所有头部维度值的 Set */
+    public static Set<String> headValueSet() {
+        return Arrays.stream(values())
+                .filter(d -> d.getGroup() == DimensionGroup.HEAD)
+                .map(DimensionEnum::getValue)
+                .collect(Collectors.toSet());
+    }
 }
 }

+ 7 - 3
core/src/main/java/com/tzld/videoVector/job/ChannelDemandMatchJob.java

@@ -1134,11 +1134,14 @@ public class ChannelDemandMatchJob {
         // 分离头部维度和分发维度:分发维度按渠道类分组过滤,头部维度保持原有逻辑
         // 分离头部维度和分发维度:分发维度按渠道类分组过滤,头部维度保持原有逻辑
         List<ChannelDemandMatchResult> headResults = new ArrayList<>();
         List<ChannelDemandMatchResult> headResults = new ArrayList<>();
         List<ChannelDemandMatchResult> distResults = new ArrayList<>();
         List<ChannelDemandMatchResult> distResults = new ArrayList<>();
+        List<ChannelDemandMatchResult> undefinedResults = new ArrayList<>();
         for (ChannelDemandMatchResult r : results) {
         for (ChannelDemandMatchResult r : results) {
             if (DimensionEnum.distributionValueSet().contains(r.getDimension())) {
             if (DimensionEnum.distributionValueSet().contains(r.getDimension())) {
                 distResults.add(r);
                 distResults.add(r);
-            } else {
+            } else if (DimensionEnum.headValueSet().contains(r.getDimension())) {
                 headResults.add(r);
                 headResults.add(r);
+            } else {
+                undefinedResults.add(r);
             }
             }
         }
         }
 
 
@@ -1150,9 +1153,10 @@ public class ChannelDemandMatchJob {
         List<ChannelDemandMatchResult> filteredResults = new ArrayList<>();
         List<ChannelDemandMatchResult> filteredResults = new ArrayList<>();
         filteredResults.addAll(filteredHead);
         filteredResults.addAll(filteredHead);
         filteredResults.addAll(filteredDist);
         filteredResults.addAll(filteredDist);
+        filteredResults.addAll(undefinedResults);
 
 
-        log.info("场景已看视频 渠道 {} 分组过滤后 {} -> {} 条 (头部{}条, 分发{}条)",
-                channelName, beforeFilterCount, filteredResults.size(), filteredHead.size(), filteredDist.size());
+        log.info("场景已看视频 渠道 {} 分组过滤后 {} -> {} 条 (头部{}条, 分发{}条,未知{}条)",
+                channelName, beforeFilterCount, filteredResults.size(), filteredHead.size(), filteredDist.size(), undefinedResults.size());
 
 
         // 批量写入
         // 批量写入
         for (List<ChannelDemandMatchResult> partition : Lists.partition(filteredResults, 1000)) {
         for (List<ChannelDemandMatchResult> partition : Lists.partition(filteredResults, 1000)) {