检索业务:基本数据渲染和排错

简介: 检索业务:基本数据渲染和排错

e77aa6904e014619bc3d8110efe27974.png

采用标签显示商品的数据

                    <div class="rig_tab">
                        <div th:each="product:${result.getProducts()}">
                            <div class="ico">
                                <i class="iconfont icon-weiguanzhu"></i>
                                <a href="/static/search/#">关注</a>
                            </div>
                            <p class="da">
                                <a href="/static/search/#" title="购买AppleCare+,获得原厂2年整机保修(含电池),和多达2次意外损坏的保修服务。购买勾选:保障服务、原厂保2年。">
                                    <img th:src="${product.getSkuImg()}" class="dim">
                                </a>
                            </p>
                            <ul class="tab_im">
                                <li><a href="/static/search/#" title="黑色">
                                    <img th:src="${product.getSkuImg()}" ></a></li>
                            <p class="tab_R">
                                <span th:text="'¥'+${product.skuPrice}">¥5199.00</span>
                            </p>
                            <p class="tab_JE">
                                <a href="/static/search/#" th:utext="${product.skuTitle}" >
                                    Apple iPhone 7 Plus (A1661) 32G 黑色 移动联通电信4G手机
                                </a>
                                </a></p>

<!-- 使用utext标签,使检索时高亮不会被转义-->

           <a href="/static/search/#" th:utext="${product.skuTitle}">

               Apple iPhone 7 Plus (A1661) 32G 黑色 移动联通电信4G手机

           </a>

品牌信息

                <!--品牌-->
                <div class="JD_nav_wrap">
                    <div class="sl_key">
                        <span>品牌:</span>
                    </div>
                    <div class="sl_value">
                        <div class="sl_value_logo">
                            <ul>
                                <li th:each="brand:${result.brands}">
                                    <a href="/static/search/#">
                                        <img th:src="${brand.brandImg}" alt="">
                                        <div th:text="${brand.brandName}">
                                        </div>
                                    </a>
                                </li>
                            </ul>
                        </div>
                    </div>

其他的所有需要展示的属性

                <!--屏幕尺寸-->
                <div class="JD_pre" th:each="attr:${result.attrs}">
                    <div class="sl_key">
                        <span th:text="${attr.attrName}">屏幕尺寸:</span>
                    </div>
                    <div class="sl_value">
                        <ul>
                            <li th:each="val:${attr.attrValue}">
                                <a href="/static/search/#" th:text="${val}">5.56英寸及以上</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>

排错

错误结果

25726e043b534f41acce8f1a0a0decf1.png

我们可以看到属性的值并没有出来。按照th遍历发现那玩意是空的,说明返回的结果有问题,查看返回的结果确实是为空,进一步想到会不会是因为请求构造出现了问题,最后发现拿出构造的dls语句去查,也是发现为空,那么进一步确定是查询的dls语句出现了问题,也就是聚合部分出现问题。


"field": "attrs.attrValue",


"field": "attrs.attValue",


发现是 attrValue写成了attValue


错误前代码

//聚合分析出当前attr_id对应的所有可能的属性值
attr_id_agg.subAggregation(AggregationBuilders.terms("attr_value_agg").field("attrs.attValue").size(50));
attr_agg.subAggregation(attr_id_agg);

排错后代码

//聚合分析出当前attr_id对应的所有可能的属性值
attr_id_agg.subAggregation(AggregationBuilders.terms("attr_value_agg").field("attrs.attrValue").size(50));
attr_agg.subAggregation(attr_id_agg);


相关文章
Qt rcc静态资源编译及使用 QtInstallframework 打包成安装包后图标丢失问题
Qt rcc静态资源编译及使用 QtInstallframework 打包成安装包后图标丢失问题
183 0
|
机器学习/深度学习 人工智能 算法
在进行YOLOv3模型部署时,有哪些常见的硬件平台选择和它们的优缺点是什么?
在进行YOLOv3模型部署时,有哪些常见的硬件平台选择和它们的优缺点是什么?
|
网络协议 网络虚拟化 Ruby
VXLAN(一)
VXLAN(一)
|
存储 前端开发 Java
Spring MVC 中的数据绑定和验证机制是什么,如何使用
Spring MVC 中的数据绑定和验证机制是什么,如何使用
|
芯片
微机实验二 || 8253定时计数器方波实验
微机实验二 || 8253定时计数器方波实验
330 0
|
存储 监控 算法
Java的垃圾收集器:理解与应用
【8月更文挑战第21天】在Java的世界里,垃圾收集器(Garbage Collector)是不可或缺的角色,它默默地在后台工作,保证内存的有效利用。本文将探讨Java的垃圾收集机制,包括其工作原理、常见的垃圾收集算法以及如何优化垃圾收集过程。通过了解这些内容,开发者可以编写出更高效、更稳定的Java应用程序。
|
人工智能 搜索推荐 自动驾驶
人工智能浪潮下的伦理困境
【8月更文挑战第14天】 在人工智能技术飞速发展的今天,我们不仅见证了技术的进步和生活的便捷,同时也面临着前所未有的伦理挑战。本文将从AI技术发展的现状出发,探讨其带来的伦理问题,并提出相应的思考与对策,旨在引导读者深入理解并积极参与到这一全球性议题中来。
138 3
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
172 0
|
存储 分布式计算 资源调度
MapReduce框架--InputFormat数据输入--切片优化(11)
MapReduce框架--InputFormat数据输入--切片优化(11)
394 0
MapReduce框架--InputFormat数据输入--切片优化(11)
|
存储 机器学习/深度学习 安全
撼动面试官系列 —— ConcurrentHashMap 深入问答
撼动面试官系列 —— ConcurrentHashMap 深入问答
191 0