Authored by hugufei

新增几种召回维度

... ... @@ -43,6 +43,7 @@ public class CommonRecallRequestBuilder {
return requests;
}
/**
* 构造【按FIRST_SKN召回】的请求参数
*
... ...
... ... @@ -31,6 +31,15 @@ public class ExtendFilterHelper {
return filter;
}
public static QueryBuilder newProductFilter() {
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.must(QueryBuilders.rangeQuery(ProductIndexEsField.firstShelveTime).gt(DateUtil.getFirstTimeSecond(DateUtil.addDay(new Date(), -30))));
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.isGlobal, "Y"));
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.isUfo, "Y"));
filter.mustNot(QueryBuilders.termsQuery(ProductIndexEsField.shopId, SpecialShopConstants.DOWNGRADE_SHOPIDS));
return filter;
}
/**
* 直通车的过滤器
*
... ...
... ... @@ -2,42 +2,49 @@ package com.yoho.search.service.recall.beans.strategy;
public enum StrategyEnum {
FIRST_SKN(111),//配置的skn
DIRECT_TRAIN(110),//直通车
DIRECT_TRAIN_UFO(109),//UFO直通车
REC_SKN(108),//实时推荐的skn
RT_YOUTUBE_SKN(107),//实时推荐的skn的相似skn
RT_SIM_SKN(106),//实时推荐的skn的相似skn
ADD_FLOW(105),//流量补偿
NEW_SHOP(104),//新开店铺
REC_S_B_NEW(89),//实时的品牌+品类的新品
REC_S_B_PROMOTION(88),//实时的品牌+品类的新开促销
REC_S_B_REDUCE_PRICE(87),//实时的品牌+品类的最新降价
REC_S_B_CTR_VALUE(86),//实时的品牌+品类的转化率
REC_S_B_HEAT_VALUE(85),//实时的品牌+品类的人气值
REC_S_B_RANDOM(84),//实时的品牌+品类的随机
VEC_RNN_S_B_NEW(79),//向量预测的品牌+品类的新品
VEC_RNN_S_B_PROMOTION(78),//向量预测的品牌+品类的新开促销
VEC_RNN_S_B_REDUCE_PRICE(77),//向量预测的品牌+品类的最新降价
VEC_RNN_S_B_CTR_VALUE(76),//实时的品牌+品类的转化率
VEC_RNN_S_B_HEAT_VALUE(75),//向量预测的品牌+品类的人气值
VEC_RNN_S_B_RANDOM(74),//向量预测的品牌+品类的随机
VEC_W2V_S_B_NEW(69),//向量预测的品牌+品类的新品
VEC_W2V_S_B_PROMOTION(68),//向量预测的品牌+品类的新开促销
VEC_W2V_S_B_REDUCE_PRICE(67),//向量预测的品牌+品类的最新降价
VEC_W2V_S_B_CTR_VALUE(66),//实时的品牌+品类的转化率
VEC_W2V_S_B_HEAT_VALUE(65),//向量预测的品牌+品类的人气值
VEC_W2V_S_B_RANDOM(64),//向量预测的品牌+品类的随机
CONFIG_S_B_NEW(59),//配置的品牌+品类的新品
CONFIG_S_B_PROMOTION(58),//配置的品牌+品类的新开促销
CONFIG_S_B_REDUCE_PRICE(57),//配置的品牌+品类的最新降价
CONFIG_S_B_CTR_VALUE(56),//配置的品牌+品类的转化率
CONFIG_S_B_HEAT_VALUE(55),//配置的的品牌+品类的人气值
CONFIG_S_B_RANDOM(54),//配置的的品牌+品类的随机
FIRST_SKN(1000),//配置的skn
DIRECT_TRAIN(900),//直通车
DIRECT_TRAIN_UFO(899),//UFO直通车
DIRECT_TRAIN_SKN_POOL(898),//商品池
DIRECT_TRAIN_BRAND(897),//品牌加权
DIRECT_TRAIN_SORT_PRICE(896),//品类价格带
REC_SKN(800),//实时推荐的skn
RT_YOUTUBE_SKN(799),//实时推荐的skn的相似skn
RT_SIM_SKN(798),//实时推荐的skn的相似skn
ADD_FLOW(700),//流量补偿
NEW_SHOP(699),//新开店铺
NEW_PRODUCT(698),//新品
REC_S_B_NEW(600),//实时的品牌+品类的新品
REC_S_B_PROMOTION(599),//实时的品牌+品类的新开促销
REC_S_B_REDUCE_PRICE(598),//实时的品牌+品类的最新降价
REC_S_B_CTR_VALUE(597),//实时的品牌+品类的转化率
REC_S_B_HEAT_VALUE(596),//实时的品牌+品类的人气值
REC_S_B_RANDOM(595),//实时的品牌+品类的随机
VEC_RNN_S_B_NEW(500),//向量预测的品牌+品类的新品
VEC_RNN_S_B_PROMOTION(499),//向量预测的品牌+品类的新开促销
VEC_RNN_S_B_REDUCE_PRICE(498),//向量预测的品牌+品类的最新降价
VEC_RNN_S_B_CTR_VALUE(497),//实时的品牌+品类的转化率
VEC_RNN_S_B_HEAT_VALUE(496),//向量预测的品牌+品类的人气值
VEC_RNN_S_B_RANDOM(495),//向量预测的品牌+品类的随机
VEC_W2V_S_B_NEW(400),//向量预测的品牌+品类的新品
VEC_W2V_S_B_PROMOTION(399),//向量预测的品牌+品类的新开促销
VEC_W2V_S_B_REDUCE_PRICE(398),//向量预测的品牌+品类的最新降价
VEC_W2V_S_B_CTR_VALUE(397),//实时的品牌+品类的转化率
VEC_W2V_S_B_HEAT_VALUE(396),//向量预测的品牌+品类的人气值
VEC_W2V_S_B_RANDOM(395),//向量预测的品牌+品类的随机
CONFIG_S_B_NEW(300),//配置的品牌+品类的新品
CONFIG_S_B_PROMOTION(299),//配置的品牌+品类的新开促销
CONFIG_S_B_REDUCE_PRICE(298),//配置的品牌+品类的最新降价
CONFIG_S_B_CTR_VALUE(297),//配置的品牌+品类的转化率
CONFIG_S_B_HEAT_VALUE(296),//配置的的品牌+品类的人气值
CONFIG_S_B_RANDOM(295),//配置的的品牌+品类的随机
COMMON_CTR_VALUE(2),//页面兜底召回
COMMON_HEAT_VALUE(1),//页面兜底召回
... ...
package com.yoho.search.service.recall.beans.strategy.impls;
import com.yoho.search.cache.CacheTimeConstants;
import com.yoho.search.service.recall.beans.helper.ExtendFilterHelper;
import com.yoho.search.service.recall.beans.helper.SortBuilderHelper;
import com.yoho.search.service.recall.beans.strategy.IStrategy;
import com.yoho.search.service.recall.beans.strategy.StrategyEnum;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.sort.SortBuilder;
public class NewProductStrategy implements IStrategy {
private int size;
public NewProductStrategy(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();
}
}
... ...