Authored by unknown

召回时默认过滤掉流量惩罚的

package com.yoho.search.service.scene.recall.strategy;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.script.Script;
... ... @@ -37,7 +38,10 @@ public class DirectTrainStrategy implements IRecallStrategy {
@Override
public QueryBuilder filter() {
return QueryBuilders.termQuery(ProductIndexEsField.toAddScore, "Y");
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.flowType, "2"));
filter.must(QueryBuilders.termQuery(ProductIndexEsField.toAddScore, "Y"));
return filter;
}
@Override
... ...
... ... @@ -49,7 +49,9 @@ public class NewPromotionStrategy implements IRecallStrategy {
@Override
public QueryBuilder filter() {
BoolQueryBuilder filter = QueryBuilders.boolQuery().must(this.nestedFilter);
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.flowType, "2"));
filter.must(QueryBuilders.boolQuery().must(this.nestedFilter));
if (brandIds != null && !brandIds.isEmpty()) {
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.brandId, brandIds));
}
... ...
... ... @@ -41,6 +41,7 @@ public class NewReducePriceStrategy implements IRecallStrategy {
@Override
public QueryBuilder filter() {
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.flowType, "2"));
filter.must(QueryBuilders.termQuery(ProductIndexEsField.isLatestReducePrice, "Y"));
if (brandIds != null && !brandIds.isEmpty()) {
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.brandId, brandIds));
... ...
... ... @@ -40,7 +40,8 @@ public class NewShelveStrategy implements IRecallStrategy {
@Override
public QueryBuilder filter() {
BoolQueryBuilder filter = QueryBuilders.boolQuery();
BoolQueryBuilder filter = QueryBuilders.boolQuery();
filter.mustNot(QueryBuilders.termQuery(ProductIndexEsField.flowType, "2"));
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.isnew,"Y"));
if (brandIds != null && !brandIds.isEmpty()) {
filter.must(QueryBuilders.termsQuery(ProductIndexEsField.brandId, brandIds));
... ...