Authored by hugufei

firstSkn支持多个

... ... @@ -115,7 +115,7 @@ public class CommonRecallRequestBuilder {
*/
private RecallRequest buildNewProductRequest(UserRecallRequest userRecallRequest) {
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.NEW_PRODUCT, 0);
NewProductStrategy strategy = new NewProductStrategy(size);
CommonNewProductStrategy strategy = new CommonNewProductStrategy(size);
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
}
... ...
... ... @@ -27,7 +27,7 @@ public class StrategyHelper {
* @return
*/
public static List<StrategyEnum> getIntervalStrategyEnums() {
return Arrays.asList(StrategyEnum.REC_SKN, StrategyEnum.RT_YOUTUBE_SKN, StrategyEnum.RT_SIM_SKN, StrategyEnum.DIRECT_TRAIN, StrategyEnum.DIRECT_TRAIN_UFO, StrategyEnum.ADD_FLOW, StrategyEnum.NEW_SHOP, StrategyEnum.NEW_PRODUCT);
return Arrays.asList(StrategyEnum.REC_SKN, StrategyEnum.RT_YOUTUBE_SKN, StrategyEnum.RT_SIM_SKN, StrategyEnum.DIRECT_TRAIN, StrategyEnum.ADD_FLOW, StrategyEnum.NEW_SHOP, StrategyEnum.NEW_PRODUCT, StrategyEnum.DIRECT_TRAIN_UFO);
}
/**
... ...
package com.yoho.search.service.recall.strategy.impls;
import com.alibaba.fastjson.JSON;
import com.yoho.search.base.utils.SearchCollectionUtils;
import com.yoho.search.cache.CacheTimeConstants;
import com.yoho.search.service.recall.helper.ExtendFilterHelper;
import com.yoho.search.service.recall.helper.SortBuilderHelper;
import com.yoho.search.service.recall.strategy.IStrategy;
import com.yoho.search.service.recall.strategy.StrategyEnum;
import org.apache.commons.collections.CollectionUtils;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.sort.SortBuilder;
... ... @@ -23,8 +25,8 @@ public class CommonFirstSknStrategy implements IStrategy {
private List<String> firstSkns;
public CommonFirstSknStrategy(int size, List<String> firstSkns) {
this.firstSkns = firstSkns;
this.size = size > firstSkns.size() ? size : firstSkns.size();
this.firstSkns = SearchCollectionUtils.safeSubList(firstSkns,0,size);
}
@Override
... ...
package com.yoho.search.service.recall.strategy.impls;
import com.yoho.search.cache.CacheTimeConstants;
import com.yoho.search.service.recall.helper.ExtendFilterHelper;
import com.yoho.search.service.recall.helper.SortBuilderHelper;
import com.yoho.search.service.recall.strategy.IStrategy;
import com.yoho.search.service.recall.strategy.StrategyEnum;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.sort.SortBuilder;
public class CommonNewProductStrategy implements IStrategy {
private int size;
public CommonNewProductStrategy(int size) {
this.size = size;
}
@Override
public StrategyEnum strategtEnum() {
return StrategyEnum.NEW_PRODUCT;
}
@Override
public QueryBuilder extendFilter() {
return ExtendFilterHelper.newProductFilter();
}
@Override
public SortBuilder<?> sortBuilder() {
return SortBuilderHelper.getRandomSort();
}
@Override
public int size() {
return size;
}
@Override
public int cacheTimeInMinute() {
return CacheTimeConstants.COMMON_RECALL_STRATEGY_CACHE_TIME;
}
@Override
public String strategyCacheKey() {
StringBuilder sb = defaultStrategyKey();
return sb.toString();
}
}
... ...