!319 fix & improve

Merge pull request !319 from OceansDeep/pg
This commit is contained in:
OceansDeep 2023-12-05 06:07:08 +00:00 committed by Gitee
commit 4aa6f864f0
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 52 additions and 8 deletions

View File

@ -0,0 +1,48 @@
package cn.lili.elasticsearch;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
public class EmptyPage implements Pageable {
@Override
public int getPageNumber() {
return 0;
}
@Override
public int getPageSize() {
return 0;
}
@Override
public long getOffset() {
return 0;
}
@Override
public Sort getSort() {
return null;
}
@Override
public Pageable next() {
return null;
}
@Override
public Pageable previousOrFirst() {
return null;
}
@Override
public Pageable first() {
return null;
}
@Override
public boolean hasPrevious() {
return false;
}
}

View File

@ -7,6 +7,7 @@ import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.PageVO;
import cn.lili.elasticsearch.EmptyPage;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
@ -122,7 +123,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
return null;
}
NativeSearchQueryBuilder builder = createSearchQueryBuilder(goodsSearch, pageVo);
NativeSearchQueryBuilder builder = createSearchQueryBuilder(goodsSearch, null);
//分类
AggregationBuilder categoryNameBuilder = AggregationBuilders.terms("categoryNameAgg").field("categoryNamePath.keyword");
builder.addAggregation(AggregationBuilders.terms("categoryAgg").field("categoryPath").subAggregation(categoryNameBuilder));
@ -137,6 +138,7 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
AggregationBuilder sortBuilder = AggregationBuilders.sum("sortAgg").field(ATTR_SORT);
AggregationBuilder paramsNameBuilder = AggregationBuilders.terms("nameAgg").field(ATTR_NAME).subAggregation(sortBuilder).order(BucketOrder.aggregation("sortAgg", false)).subAggregation(valuesBuilder);
builder.addAggregation(AggregationBuilders.nested("attrAgg", ATTR_PATH).subAggregation(paramsNameBuilder));
builder.withPageable(new EmptyPage());
NativeSearchQuery searchQuery = builder.build();
SearchHits<EsGoodsIndex> search = restTemplate.search(searchQuery, EsGoodsIndex.class);
@ -615,17 +617,11 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
private List<FunctionScoreQueryBuilder.FilterFunctionBuilder> buildFunctionSearch() {
List<FunctionScoreQueryBuilder.FilterFunctionBuilder> filterFunctionBuilders = new ArrayList<>();
// GaussDecayFunctionBuilder skuNoScore = ScoreFunctionBuilders.gaussDecayFunction("skuSource", 100, 10).setWeight(2);
// FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
// filterFunctionBuilders.add(skuNoBuilder);
// 修改分数算法为无数字最大分数越高
FieldValueFactorFunctionBuilder skuNoScore = ScoreFunctionBuilders.fieldValueFactorFunction("skuSource").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(3);
FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
filterFunctionBuilders.add(skuNoBuilder);
// 修改分数算法为无数字最大分数越高
// FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.NONE).setWeight(10);
// FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(buyCountScore);
// filterFunctionBuilders.add(buyCountBuilder);
return filterFunctionBuilders;
}