| 
					
				 | 
			
			
				@@ -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()) 
			 |