|
|
package com.yoho.search.service.recall.beans.builder;
|
|
|
|
|
|
|
|
|
import com.yoho.search.service.recall.strategy.StrategyEnum;
|
|
|
import com.yoho.search.service.recall.config.RecallConfigService;
|
|
|
import com.yoho.search.service.recall.models.req.RecallRequest;
|
|
|
import com.yoho.search.service.recall.models.req.UserRecallRequest;
|
|
|
import com.yoho.search.service.recall.strategy.StrategyEnum;
|
|
|
import com.yoho.search.service.recall.strategy.impls.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
...
|
...
|
@@ -38,12 +38,13 @@ public class CommonRecallRequestBuilder { |
|
|
requests.add(this.buildNewShopRequest(userRecallRequest));
|
|
|
//1.5) 流量补偿的召回
|
|
|
requests.add(this.buildAddFlowRequest(userRecallRequest));
|
|
|
//1.6) 页面的兜底召回
|
|
|
//1.6) 新品的召回
|
|
|
requests.add(this.buildNewProductRequest(userRecallRequest));
|
|
|
//1.7) 页面的兜底召回
|
|
|
requests.add(this.buildCommonHeatValueStrategy(userRecallRequest, pageSize));
|
|
|
return requests;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 构造【按FIRST_SKN召回】的请求参数
|
|
|
*
|
...
|
...
|
@@ -63,7 +64,7 @@ public class CommonRecallRequestBuilder { |
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildDirectTrainRequest(UserRecallRequest userRecallRequest) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.DIRECT_TRAIN,60);
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.DIRECT_TRAIN, 0);
|
|
|
CommonDirectTrainStrategy strategy = new CommonDirectTrainStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
...
|
...
|
@@ -75,7 +76,7 @@ public class CommonRecallRequestBuilder { |
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildUfoDirectTrainRequest(UserRecallRequest userRecallRequest) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.DIRECT_TRAIN_UFO,40);
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.DIRECT_TRAIN_UFO, 0);
|
|
|
CommonDirectTrainUfoStrategy strategy = new CommonDirectTrainUfoStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
...
|
...
|
@@ -87,7 +88,7 @@ public class CommonRecallRequestBuilder { |
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildNewShopRequest(UserRecallRequest userRecallRequest) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.NEW_SHOP,10);
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.NEW_SHOP, 0);
|
|
|
CommonNewShopStrategy strategy = new CommonNewShopStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
...
|
...
|
@@ -99,19 +100,32 @@ public class CommonRecallRequestBuilder { |
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildAddFlowRequest(UserRecallRequest userRecallRequest) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.ADD_FLOW,10);
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.ADD_FLOW, 0);
|
|
|
CommonAddFlowStrategy strategy = new CommonAddFlowStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 构建【新品召回】的请求参数
|
|
|
*
|
|
|
* @param userRecallRequest
|
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildNewProductRequest(UserRecallRequest userRecallRequest) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.NEW_PRODUCT, 0);
|
|
|
NewProductStrategy strategy = new NewProductStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 构建【按兜底召回】的请求参数
|
|
|
*
|
|
|
* @param userRecallRequest
|
|
|
* @param size
|
|
|
* @param defaultSize
|
|
|
* @return
|
|
|
*/
|
|
|
private RecallRequest buildCommonHeatValueStrategy(UserRecallRequest userRecallRequest, int size) {
|
|
|
private RecallRequest buildCommonHeatValueStrategy(UserRecallRequest userRecallRequest, int defaultSize) {
|
|
|
int size = recallConfigService.queryStrategyConfigSize(userRecallRequest, StrategyEnum.COMMON_HEAT_VALUE, defaultSize);
|
|
|
CommonHeatValueStrategy strategy = new CommonHeatValueStrategy(size);
|
|
|
return new RecallRequest(userRecallRequest.getParamQueryFilter(), strategy);
|
|
|
}
|
...
|
...
|
|