From ccb57411a2f0ae224aafd87daa67bcf8467ea4ac Mon Sep 17 00:00:00 2001 From: xiaochangbai <704566072@qq.com> Date: Wed, 1 Jun 2022 21:27:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/EsGoodsSearchServiceImpl.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) 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 e77d5bce..e91bd477 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 @@ -410,28 +410,28 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { * @param searchDTO */ private void recommended(BoolQueryBuilder filterBuilder, EsGoodsSearchDTO searchDTO) { - EsGoodsIndex currentGoodsIndice = null; - if(CharSequenceUtil.isNotEmpty(searchDTO.getCurrentGoodsId())){ - //查询当前商品的信息 - NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder(); - NativeSearchQuery build = searchQueryBuilder.build(); - build.setIds(Arrays.asList(searchDTO.getCurrentGoodsId())); - List esGoodsIndices = restTemplate.multiGet(build, EsGoodsIndex.class, restTemplate.getIndexCoordinatesFor(EsGoodsIndex.class)); - if(esGoodsIndices==null || esGoodsIndices.size()<1){ - return; - } - currentGoodsIndice = esGoodsIndices.get(0); + + String currentGoodsId = searchDTO.getCurrentGoodsId(); + if(CharSequenceUtil.isEmpty(currentGoodsId)) { + return; } - //推荐相同分类的商品 - String categoryPath = currentGoodsIndice.getCategoryPath(); + + //排除当前商品 + filterBuilder.mustNot(QueryBuilders.matchQuery("id",currentGoodsId)); + + //查询当前浏览商品的索引信息 + EsGoodsIndex esGoodsIndex = restTemplate.get(currentGoodsId, EsGoodsIndex.class); + if(esGoodsIndex==null) { + return; + } + //推荐与当前浏览商品相同一个二级分类下的商品 + String categoryPath = esGoodsIndex.getCategoryPath(); if(CharSequenceUtil.isNotEmpty(categoryPath)){ //匹配二级分类 String substring = categoryPath.substring(0, categoryPath.lastIndexOf(",")); filterBuilder.must(QueryBuilders.wildcardQuery("categoryPath",substring+"*")); } - //排除当前商品 - filterBuilder.mustNot(QueryBuilders.matchQuery("id",searchDTO.getCurrentGoodsId())); } /**