Authored by wangnan9279

ufo搜索建议词 fix

... ... @@ -18,9 +18,6 @@ public class UfoSuggestionConstants {
public static final List<String> IGNORE_BRAND_NAMES = Arrays.asList("");
/**
* 返回智能搜索词的数量
*/
public static final int SMART_SUGGESTION_TERM_COUNT = 10;
public static final int SMART_SUGGESTION_PRODUCT_LIMIT = 20;
... ...
... ... @@ -5,7 +5,6 @@ import com.yoho.search.base.utils.ProductIndexEsField;
import com.yoho.search.base.utils.UfoProductIndexEsField;
import com.yoho.search.consumer.common.IYohoIndexService;
import com.yoho.search.consumer.ufosuggests.common.UfoKeywordType;
import com.yoho.search.consumer.ufosuggests.common.UfoSuggestionConstants;
import com.yoho.search.consumer.ufosuggests.discover.UfoAbstractSuggestWordDiscoverer;
import com.yoho.search.core.es.model.SearchParam;
import com.yoho.search.core.es.model.SearchResult;
... ... @@ -59,7 +58,7 @@ public class UfoBrandAndSortNameSuggestWordDiscoverer extends UfoAbstractSuggest
return keywordSet;
}
List<Short> brandIdList = brandList.stream().filter(brand -> !UfoSuggestionConstants.IGNORE_BRAND_NAMES.contains(brand.getBrandName())).map(Brand::getId).collect(Collectors.toList());
List<Short> brandIdList = brandList.stream().map(Brand::getId).collect(Collectors.toList());
SearchParam searchParam = new SearchParam();
searchParam.setSize(0);
... ...
... ... @@ -7,7 +7,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation;
import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
... ... @@ -18,23 +17,15 @@ import java.util.Map;
*/
public abstract class UfoAbstractTokenAggregation extends AbstractAggregation {
protected int size;
private long minDocCount;
abstract String fieldName();
public UfoAbstractTokenAggregation() {
this.size = 10000;
this.minDocCount = 5;
}
abstract Integer size();
public UfoAbstractTokenAggregation(int size, long minDocCount) {
this.size = size;
this.minDocCount = minDocCount;
}
abstract Integer minDocCount();
@Override
public AbstractAggregationBuilder<?> getBuilder() {
return AggregationBuilders.terms(aggName()).field(fieldName()).size(size).minDocCount(minDocCount).includeExclude(new IncludeExclude(".{2,15}", null));
return AggregationBuilders.terms(aggName()).field(fieldName()).size(size()).minDocCount(minDocCount()).includeExclude(new IncludeExclude(".{2,15}", null));
}
@Override
... ... @@ -44,15 +35,12 @@ public abstract class UfoAbstractTokenAggregation extends AbstractAggregation {
return null;
}
Map<String, Integer> countMap = new LinkedHashMap<>(size);
Iterator<? extends MultiBucketsAggregation.Bucket> iterator = aggregation.getBuckets().iterator();
while (iterator.hasNext()) {
MultiBucketsAggregation.Bucket buck = iterator.next();
Map<String, Integer> countMap = new LinkedHashMap<>(size());
for (MultiBucketsAggregation.Bucket buck : aggregation.getBuckets()) {
countMap.put(buck.getKeyAsString(), Integer.valueOf(String.valueOf(buck.getDocCount())));
}
return countMap;
}
abstract String fieldName();
}
... ...
... ... @@ -23,4 +23,14 @@ public class UfoBrandKeywordTokenAggregation extends UfoAbstractTokenAggregation
public String filterName() {
return "ufoBrandKeyword";
}
@Override
public Integer size() {
return 10000;
}
@Override
public Integer minDocCount() {
return 1;
}
}
... ...
... ... @@ -23,4 +23,14 @@ public class UfoProductKeywordTokenAggregation extends UfoAbstractTokenAggregati
public String filterName() {
return "ufoProductKeyword";
}
@Override
public Integer size() {
return 10000;
}
@Override
public Integer minDocCount() {
return 1;
}
}
... ...
... ... @@ -24,5 +24,17 @@ public class UfoProductNameTokenAggregation extends UfoAbstractTokenAggregation
return "ufoProductNameToken";
}
@Override
public Integer size() {
return 10000;
}
@Override
public Integer minDocCount() {
return 5;
}
}
... ...
... ... @@ -3,6 +3,7 @@ package com.yoho.search.consumer.ufosuggests.discover.tokendiscover.agg;
import com.yoho.search.base.utils.UfoProductIndexEsField;
/**
* 系列关键词词条聚合
* @author wangnan
* @version 2019/6/5
*/
... ... @@ -22,4 +23,14 @@ public class UfoSeriesKeywordTokenAggregation extends UfoAbstractTokenAggregatio
public String filterName() {
return "ufoSeriesKeyword";
}
@Override
public Integer size() {
return 10000;
}
@Override
public Integer minDocCount() {
return 1;
}
}
... ...