|
@@ -1,6 +1,7 @@
|
|
|
package com.tzld.longarticle.recommend.server.service.score;
|
|
|
|
|
|
|
|
|
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.tzld.longarticle.recommend.server.common.ThreadPoolFactory;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.RankStrategyEnum;
|
|
|
import com.tzld.longarticle.recommend.server.service.score.strategy.*;
|
|
@@ -9,6 +10,7 @@ import com.tzld.longarticle.recommend.server.util.JSONUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeansException;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
|
import org.springframework.context.ApplicationContextAware;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -34,6 +36,9 @@ public class ScoreService implements ApplicationContextAware {
|
|
|
private ApplicationContext applicationContext;
|
|
|
private final ExecutorService pool = ThreadPoolFactory.scorePool();
|
|
|
|
|
|
+ @ApolloJsonValue("${similarity.stop.strategy.flag:[]}")
|
|
|
+ private List<String> similarityStopStrategies;
|
|
|
+
|
|
|
@PostConstruct
|
|
|
public void init() {
|
|
|
Map<String, ScoreStrategy> type = applicationContext.getBeansOfType(ScoreStrategy.class);
|
|
@@ -87,7 +92,9 @@ public class ScoreService implements ApplicationContextAware {
|
|
|
|
|
|
private List<ScoreStrategy> getScoreStrategy(ScoreParam param) {
|
|
|
List<ScoreStrategy> strategies = new ArrayList<>();
|
|
|
- strategies.add(strategyMap.get(SimilarityStrategy.class.getSimpleName()));
|
|
|
+ if (!similarityStopStrategies.contains(param.getStrategy())) {
|
|
|
+ strategies.add(strategyMap.get(SimilarityStrategy.class.getSimpleName()));
|
|
|
+ }
|
|
|
strategies.add(strategyMap.get(ViewCountStrategy.class.getSimpleName()));
|
|
|
if (StringUtils.equals(param.getStrategy(), RankStrategyEnum.ArticleRankV3.getStrategy())
|
|
|
|| StringUtils.equals(param.getStrategy(), RankStrategyEnum.ArticleRankV4.getStrategy())
|