Bladeren bron

remove unused logic

丁云鹏 3 maanden geleden
bovenliggende
commit
b29512535c

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV536.java

@@ -31,10 +31,6 @@ public class RankStrategy4RegionMergeModelV536 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     @Override
     public List<Video> mergeAndRankRovRecall(RankParam param) {
         Map<String, Double> mergeWeight = this.mergeWeight != null ? this.mergeWeight : new HashMap<>(0);
@@ -223,54 +219,35 @@ public class RankStrategy4RegionMergeModelV536 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = null;
-                                    if (param.getAbExpCodes().contains(word2vecExp)) {
-                                        doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    } else {
-                                        doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                    }
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
-                        }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
-                    }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
                                 Double[] doubles = null;
                                 if (param.getAbExpCodes().contains(word2vecExp)) {
                                     doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
                                 } else {
                                     doubles = ExtractorUtils.funcC34567ForTags(tags, title);
                                 }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
                     }
                 }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                    }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
+                }
             }
 
             if (!vid.isEmpty()) {

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV562.java

@@ -33,10 +33,6 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     private static final List<String> shortPeriod = Arrays.asList("1h", "2h", "4h", "6h", "12h", "24h", "7d");
     private static final List<String> middlePeriod = Arrays.asList("14d", "30d");
     private static final List<String> longPeriod = Arrays.asList("7d", "35d", "90d", "365d");
@@ -237,48 +233,29 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
+                                Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
                     }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
-                                Double[] doubles = null;
-                                if (param.getAbExpCodes().contains(word2vecExp)) {
-                                    doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                } else {
-                                    doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
-                        }
+                }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
                     }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
                 }
             }
 

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV563.java

@@ -31,10 +31,6 @@ public class RankStrategy4RegionMergeModelV563 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     @Override
     public List<Video> mergeAndRankRovRecall(RankParam param) {
         Map<String, Double> mergeWeight = this.mergeWeight != null ? this.mergeWeight : new HashMap<>(0);
@@ -235,54 +231,35 @@ public class RankStrategy4RegionMergeModelV563 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = null;
-                                    if (param.getAbExpCodes().contains(word2vecExp)) {
-                                        doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    } else {
-                                        doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                    }
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
-                        }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
-                    }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
                                 Double[] doubles = null;
                                 if (param.getAbExpCodes().contains(word2vecExp)) {
                                     doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
                                 } else {
                                     doubles = ExtractorUtils.funcC34567ForTags(tags, title);
                                 }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
                     }
                 }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                    }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
+                }
             }
 
             if (!vid.isEmpty()) {

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV564.java

@@ -33,10 +33,6 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     private static final List<String> shortPeriod = Arrays.asList("1h", "2h", "4h", "6h", "12h", "24h", "7d");
     private static final List<String> middlePeriod = Arrays.asList("14d", "30d");
     private static final List<String> longPeriod = Arrays.asList("7d", "35d", "90d", "365d");
@@ -237,48 +233,29 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
+                                Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
                     }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
-                                Double[] doubles = null;
-                                if (param.getAbExpCodes().contains(word2vecExp)) {
-                                    doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                } else {
-                                    doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
-                        }
+                }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
                     }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
                 }
             }
 

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV567.java

@@ -33,10 +33,6 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     private static final List<String> shortPeriod = Arrays.asList("1h", "2h", "4h", "6h", "12h", "24h", "7d");
     private static final List<String> middlePeriod = Arrays.asList("14d", "30d");
     private static final List<String> longPeriod = Arrays.asList("7d", "35d", "90d", "365d");
@@ -249,48 +245,29 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
+                                Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
                     }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
-                                Double[] doubles = null;
-                                if (param.getAbExpCodes().contains(word2vecExp)) {
-                                    doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                } else {
-                                    doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
-                        }
+                }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
                     }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
                 }
             }
 

+ 20 - 43
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV569.java

@@ -33,10 +33,6 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
     @Autowired
     private FeatureService featureService;
 
-
-    @Value("${similarity.concurrent: true}")
-    private boolean similarityConcurrent;
-
     private static final List<String> shortPeriod = Arrays.asList("1h", "2h", "4h", "6h", "12h", "24h", "7d");
     private static final List<String> middlePeriod = Arrays.asList("14d", "30d");
     private static final List<String> longPeriod = Arrays.asList("7d", "35d", "90d", "365d");
@@ -237,48 +233,29 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
 
             String title = videoInfo.getOrDefault("title", "");
             if (!title.isEmpty()) {
-                if (similarityConcurrent) {
-                    List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String key = name + "_" + key_time;
-                            String tags = c34567Map.getOrDefault(key, "");
-                            if (!tags.isEmpty()) {
-                                Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
-                                    Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                    return Pair.create(key, doubles);
-                                });
-                                futures.add(future);
-                            }
-                        }
-                    }
-                    try {
-                        for (Future<Pair<String, Double[]>> future : futures) {
-                            Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
-                            featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
-                            featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
-                            featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
+                List<Future<Pair<String, Double[]>>> futures = new ArrayList<>();
+                for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
+                    for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
+                        String key = name + "_" + key_time;
+                        String tags = c34567Map.getOrDefault(key, "");
+                        if (!tags.isEmpty()) {
+                            Future<Pair<String, Double[]>> future = ThreadPoolFactory.defaultPool().submit(() -> {
+                                Double[] doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+                                return Pair.create(key, doubles);
+                            });
+                            futures.add(future);
                         }
-                    } catch (Exception e) {
-                        log.error("concurrent similarity error", e);
                     }
-                } else {
-                    for (String name : Arrays.asList("c3_feature", "c4_feature", "c5_feature", "c6_feature", "c7_feature")) {
-                        for (String key_time : Arrays.asList("tags_1d", "tags_3d", "tags_7d")) {
-                            String tags = c34567Map.getOrDefault(name + "_" + key_time, "");
-                            if (!tags.isEmpty()) {
-                                Double[] doubles = null;
-                                if (param.getAbExpCodes().contains(word2vecExp)) {
-                                    doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
-                                } else {
-                                    doubles = ExtractorUtils.funcC34567ForTags(tags, title);
-                                }
-                                featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
-                                featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
-                                featureMap.put(name + "_" + key_time + "_avgscore", doubles[2]);
-                            }
-                        }
+                }
+                try {
+                    for (Future<Pair<String, Double[]>> future : futures) {
+                        Pair<String, Double[]> pair = future.get(1000, TimeUnit.MILLISECONDS);
+                        featureMap.put(pair.getFirst() + "_matchnum", pair.getSecond()[0]);
+                        featureMap.put(pair.getFirst() + "_maxscore", pair.getSecond()[1]);
+                        featureMap.put(pair.getFirst() + "_avgscore", pair.getSecond()[2]);
                     }
+                } catch (Exception e) {
+                    log.error("concurrent similarity error", e);
                 }
             }