Authored by hugufei

新增ufo配置词,搜搜关键字包含这些词的时候ufo商品在前面

... ... @@ -9,6 +9,7 @@ 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 +22,21 @@ public class SearchDynamicConfigService {
@Autowired
private ConfigReader configReader;
private List<String> ufoFirstSearchKeyWords = new ArrayList<>();
@PostConstruct
void init(){
ufoFirstSearchKeyWords.addAll(Arrays.asList("nike","耐克"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("adidas","originals","三叶草","阿迪","阿迪达斯"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("ow","off-white"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("亚限","欧限","美限"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("太极","喷","空军","飞马","倒勾","湖人","黑粉"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("椰子","yeezy"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("aj", "air","max","force","pg","m2k","gs","supreme","af1"));
ufoFirstSearchKeyWords.addAll(Arrays.asList("90","95","97","98","720","350", "500", "700"));
}
/**
* 是否开启个性化
*/
... ... @@ -204,7 +220,7 @@ public class SearchDynamicConfigService {
* ufo商品在前面的特殊搜索词
*/
public List<String> ufoFirstSearchKeyWords() {
return Arrays.asList("aj", "ow", "冠军", "椰子", "yeezy", "350", "500", "700", "af1", "supreme", "m2k");
return this.ufoFirstSearchKeyWords;
}
/**
... ...
... ... @@ -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,9 +47,11 @@ 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,"").toLowerCase();
for(String ufoFirstSearchKeyWord : dynamicConfig.ufoFirstSearchKeyWords()){
if(query.contains(ufoFirstSearchKeyWord)){
return new UfoProductScorer(20f);
}
}
return new UfoProductScorer(0.5f);
}
... ... @@ -129,4 +133,24 @@ public class SearchScorerFactory {
public IScorer getSpecialShopScorer(List<Integer> shopIds, float weight) {
return new SpecialShopScorer(shopIds, weight);
}
// public static void main(String[] args) {
// String query ="air Nike max".toLowerCase();
// List<String> ufoFirstSearchKeyWords = new ArrayList<>();
// ufoFirstSearchKeyWords.addAll(Arrays.asList("nike","耐克"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("adidas","originals","三叶草","阿迪","阿迪达斯"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("ow","off-white"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("亚限","欧限","美限"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("太极","喷","空军","飞马","倒勾","湖人","黑粉"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("椰子","yeezy"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("aj", "air","max","force","pg","m2k","gs","supreme","af1"));
// ufoFirstSearchKeyWords.addAll(Arrays.asList("90","95","97","98","720","350", "500", "700"));
// for(String ufoFirstSearchKeyWord : ufoFirstSearchKeyWords){
// if(query.contains(ufoFirstSearchKeyWord)){
// System.out.println(true);
// return;
// }
// }
// System.out.println(false);
// }
}
... ...