Authored by hugufei

新开促销的按人气排序以保证出来商品的效果

... ... @@ -67,7 +67,6 @@ public abstract class AbstractRecallService {
protected void setLogEnableThreadLocal(Map<String, String> paramMap) {
int uid = searchCommonHelper.getUid(paramMap);
RECALL_LOGGER.error("uid is[{}]", uid);
if (uid == 13420925) {
logEnableThreadLocal.set(true);
} else {
... ...
... ... @@ -367,11 +367,11 @@ public class SortRecallSceneService extends AbstractRecallService {
// 4、新开店铺商品召回-随机召回
recallStrategy.add(new NewShopStrategy(2));
// 5、支持新上架的召回-有new标签的
recallStrategy.add(new NewShelveStrategy(brandIds, 20));
recallStrategy.add(new NewShelveStrategy(brandIds, 10));
// 6、支持新降价的召回-两天内实际降过价的
recallStrategy.add(new NewReducePriceStrategy(brandIds, 30));
recallStrategy.add(new NewReducePriceStrategy(brandIds, 20));
// 7、支持新开促销的召回-5种促销类型
recallStrategy.add(new NewPromotionStrategy(brandIds, 30));
recallStrategy.add(new NewPromotionStrategy(brandIds, 20));
// 8、支持兜底的召回-人气排序
recallStrategy.add(new CommonStrategy(pageSize));
return recallStrategy;
... ...
... ... @@ -8,8 +8,6 @@ import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.script.Script;
import org.elasticsearch.search.sort.ScriptSortBuilder.ScriptSortType;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
... ... @@ -56,7 +54,7 @@ public class NewPromotionStrategy implements IRecallStrategy {
public QueryBuilder filter() {
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.flowType, "2"));
filter.mustNot(QueryBuilders.termsQuery(ProductIndexEsField.isnew,"Y"));
filter.mustNot(QueryBuilders.termsQuery(ProductIndexEsField.isnew, "Y"));
filter.must(QueryBuilders.nestedQuery(ProductIndexEsField.matchedPromotions, this.nestedFilter, ScoreMode.None));
if (brandIds != null && !brandIds.isEmpty()) {
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.brandId, brandIds));
... ... @@ -66,11 +64,7 @@ public class NewPromotionStrategy implements IRecallStrategy {
@Override
public SortBuilder<?> firstSortBuilder() {
// FieldSortBuilder activitySort =
// SortBuilders.fieldSort("matchedPromotions.startTime").order(SortOrder.DESC).setNestedPath("matchedPromotions").missing("_last");
// activitySort.setNestedFilter(this.nestedFilter);
// return activitySort;
return SortBuilders.scriptSort(new Script("Math.random()"), ScriptSortType.NUMBER).order(SortOrder.ASC);
return SortBuilders.fieldSort(ProductIndexEsField.heatValue).order(SortOrder.DESC);
}
}
... ...