From 183b2ba30cc2175d4b48adf4b9e3e7b356e772a0 Mon Sep 17 00:00:00 2001 From: misworga831 Date: Tue, 5 Dec 2023 11:48:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=81=9A=E5=90=88=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lili/elasticsearch/EmptyPage.java | 48 +++++++++++++++++++ .../serviceimpl/EsGoodsSearchServiceImpl.java | 12 ++--- 2 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 framework/src/main/java/cn/lili/elasticsearch/EmptyPage.java diff --git a/framework/src/main/java/cn/lili/elasticsearch/EmptyPage.java b/framework/src/main/java/cn/lili/elasticsearch/EmptyPage.java new file mode 100644 index 000000000..8513354a5 --- /dev/null +++ b/framework/src/main/java/cn/lili/elasticsearch/EmptyPage.java @@ -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; + } + +} diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java index 1171dd1ed..e97810170 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java @@ -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 search = restTemplate.search(searchQuery, EsGoodsIndex.class); @@ -615,17 +617,11 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { private List buildFunctionSearch() { List 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; }