Authored by hugufei

Merge branch 'master' into 0815

... ... @@ -4,11 +4,13 @@ import com.yoho.core.config.ConfigReader;
import com.yoho.search.aop.downgrade.PersionalRateLimit;
import com.yoho.search.aop.downgrade.PersionalRateLimitConfig;
import com.yoho.search.base.utils.ConvertUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
... ... @@ -21,6 +23,27 @@ public class SearchDynamicConfigService {
@Autowired
private ConfigReader configReader;
private List<String> ufoWholeFirstSearchKeyWords = new ArrayList<>();
private List<String> ufoPartFirstSearchKeyWords = new ArrayList<>();
@PostConstruct
void init(){
//完全匹配
ufoWholeFirstSearchKeyWords.addAll(Arrays.asList("喷"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("冠军"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("椰子","yeezy"));
//部分包含
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("nike","耐克"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("adidas","originals","三叶草","阿迪","阿迪达斯"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("ow","off-white"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("亚限","欧限","美限"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("太极","飞马","倒勾","湖人","黑粉"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("aj", "air","max","force","pg","m2k","gs","supreme","af1"));
ufoPartFirstSearchKeyWords.addAll(Arrays.asList("90","95","97","98","720","350", "500", "700"));
}
/**
* 是否开启个性化
*/
... ... @@ -203,8 +226,20 @@ public class SearchDynamicConfigService {
/**
* ufo商品在前面的特殊搜索词
*/
public List<String> ufoFirstSearchKeyWords() {
return Arrays.asList("aj", "ow", "冠军", "椰子", "yeezy", "350", "500", "700", "af1", "supreme", "m2k");
public boolean ufoProductFirstBySearchKeyWord(String query) {
if(StringUtils.isBlank(query)){
return false;
}
String queryLowerCase = query.toLowerCase();
if(this.ufoWholeFirstSearchKeyWords.contains(queryLowerCase)){
return true;
}
for(String ufoPartFirstSearchKeyWord:this.ufoPartFirstSearchKeyWords){
if(queryLowerCase.contains(ufoPartFirstSearchKeyWord)){
return true;
}
}
return false;
}
/**
... ...
... ... @@ -7,6 +7,7 @@ import com.yoho.search.models.FirstShelveTimeScore;
import com.yoho.search.service.helper.SearchCommonHelper;
import com.yoho.search.service.scorer.impl.*;
import com.yoho.search.service.scorer.personal.PersonalGenderFeatureSearch;
import org.apache.commons.collections.MapUtils;
import org.elasticsearch.index.query.QueryBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
... ... @@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
... ... @@ -45,11 +47,12 @@ public class SearchScorerFactory {
if (!searchCommonHelper.isFuzzySearchPageDefault(paramMap)) {
return new UfoProductScorer(0.5f);
}
String query = paramMap.get(SearchRequestParams.PARAM_SEARCH_QUERY);
if (dynamicConfig.ufoFirstSearchKeyWords().contains(query)) {
return new UfoProductScorer(2f);
String query = MapUtils.getString(paramMap,SearchRequestParams.PARAM_SEARCH_QUERY,"");
if(dynamicConfig.ufoProductFirstBySearchKeyWord(query)){
return new UfoProductScorer(20f);
}else{
return new UfoProductScorer(0.5f);
}
return new UfoProductScorer(0.5f);
}
// // 获取【断码商品】的打分器
... ...