如何返回品牌和分类给前端,显示在浏览器的商品参数页面。

这一节我们来做就是如何为页面当中的分类编写结果集方法

首先我们先看到红框圈住的地方这里
在这里插入图片描述
我们就去封装这个分类方法,因为这个是键值对的形式,你可以从上图中看出来,所以我们采用封装List的键值对方法。

当然还有下面的品牌方法也是List。

最后别忘了写构造方法,一个是无参的构造,一个是有参的构造。

在这里插入图片描述
然后再记得为他写上继承方法,把泛型传进去

在这里插入图片描述

需要用到这个方法,这个是查询分类结果或者品牌结果的。

在这里插入图片描述
Service里面加上就不会报错
在这里插入图片描述

还要注意一下最后那里,要设置分类和品牌的参数进去,因为我们暂时还没有,所以可以设置为null
在这里插入图片描述
刚刚SearchResult页面有些错误,调整一下如下

在这里插入图片描述
我们这里可以去先定义一个分类名和品牌名,然后通过聚合的方法,添加分类名和品牌名,然后添加上他们的字段,分类名的字段就是cid3,品牌名字段就是brandId,这个的作用就是根据分类名和品牌名的字段对结果进行一个聚合,显示在选择栏处。
在这里插入图片描述

加下来我们就要写上下面的方法,先执行查询聚合,获取到结果集后,再进行一个解析和装扮成我们所要的类型

为什么要用到AggregatePage这个方法呢?本来我们这里是个Page方法的,但是Page方法里面并没有接收聚合结果集的方法,但是它的子集有这个方法,它的子集就是AggregatePage,所以我们强制转换成AggregatePage并且传入Goods,然后接收方式也是一样。

然后我们就可以获取聚合结果并且解析了,首先我们要看看我们要解析成哪种类型,然后就进行解析就行,
在这里插入图片描述
这就是我们要解析成为的类型。
在这里插入图片描述

把两个参数传进来就行,然后我们就要去编写两个get方法。
在这里插入图片描述
先来写一下获取品牌聚合的方法,首先先把传进来的聚合强制转换为Long类型的Terms字段(这个LongTerms是一种类型,类似的类型有StringTerms等),然后下面我们就要用到遍历的方法了,把terms里面的桶进行遍历,每一个桶当中返回一个通过品牌id查询品牌的方法,id从key中来,因为key是Long类型,最后用LongValue,而且前面也用了getKeyAdNumber。最终转换为一个集合

在这里插入图片描述
如果忘记bucket桶是什么的话,可以看看下图。
在这里插入图片描述

然后我们就去编写获取分类聚合的方法,首先也是强制转换LongTerms,然后遍历每个桶,因为我们这个是键值对,所以需要new一个HashMap,然后获取分类id也就是key,然后通过id查找分类名字,这里要注意的是,ids是一个集合类型,我们只传入一个id进行查找,也是可以的,但首先要把id传进一个集合里面,即使这个集合只有id一个子集也好,也可以照样执行查询,返回一个List,然后把键值对传进去,最终返回一个map,这个map就是方法中的返回值类型List《Map》《String,Object》
在这里插入图片描述
然后重启服务器,刷新页面后,返回来看看,这里已经可以返回数值了,一个是品牌,一个是分类

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值