(转)淘淘商城系列——商品搜索功能测试

http://blog.csdn.net/yerenyuan_pku/article/details/72941506

到这里,我相信大家也是不容易,我自己也算是很不容易写到这里,希望自己能一直写下去。之前我们就差不多把商品搜索功能实现了,本文我们来一起测试下该搜索功能。 
首先我们要保证zookeeper、redis、image、solr服务都开启。接着我们把taotao-common工程重新打包到本地maven仓库,由于taotao-search-interface工程新添加了一个接口,所以我们也得把taotao-search-interface工程打包到本地maven仓库。 
下面我们依次启动taotao-manager、taotao-content、taotao-search三个服务,然后在启动taotao-manager-web、taotao-portal-web和taotao-search-web这三个系统。成功启动完之后,我们来到淘淘商城首页,如下图所示,我们在搜索框中输入”手机”并按回车进行搜索。 

搜索结果如下图,可以看到,搜索结果乱码了。 

那么,我们怎么解决乱码问题呢?我们可以直接在SearchController类当中解决,对请求参数进行转码处理,如下图所示,工程默认的编码是”ISO8859-1”,现在需要把它修改为”UTF-8”。 

修改完之后,我们重启taotao-search-web工程,然后我们再在淘淘商城首页的搜索框中输入”手机”然后回车进行查询,便可以看到如下图所示界面,可以看到搜索出结果了,只是由于数据库中存储的图片地址都是测试数据,是无法访问的,因此都没有图片。 

这时还有功能没有完善,那就是商品的翻页,即下一页、上一页,当我们点击上图的下一页时,会看到如下图所示界面,说明请求就不正确,因为它默认访问的端口是8082,而我们的搜索系统工程的端口是8085,因此我们需要找到控制下一页、上一页功能的js文件并做下修改。 

我们在search.jsp页面当中可以看到引用了脚本文件——search_main.js,这个js文件就控制了我们的上一页、下一页的操作。 

我们打开search_main.js文件,在文件中搜索8082,只有一处,然后我们把8082修改为8085,如下图所示。 

下面我们到搜索系统工程再点击”下一页”按钮,会看到如下图所示界面,发现已经正常到第2页了,说明上一页、下一页功能也正常了! 

接下来,我们可以在淘淘商城后台添加一个关于手机的商品,如下图所示,输入完商品信息后点击”提交”。 

我们来到数据库tb_item表的最后一页,可以看到我们刚才添加的手机信息,如下图所示。 

我们马上到搜索系统工程中,在搜索框中输入”iPhone”然后回车即可搜索标题中带”iPhone”字样的商品,如下图所示。可以看到并没有我们刚才添加的手机,这是什么原因呢?其实很简单,是因为我们刚才添加的商品并没有在索引库中,因此我们需要把数据库中的商品与索引库重新同步一下。 

我们到淘淘商城后台进行同步数据库中的数据到索引库,如下图所示。点击”一键导入商品数据到索引库”,由于数据量较大,导入需要几十秒的时间。 

导入成功后,我们再到搜索系统工程中进行搜索,发现这时成功搜索出该手机了! 

但是这里依然会有个问题,我们在后台添加商品的时候指定了多张图片,我们发现虽然搜索到了结果但是商品的图片无法正常显示。这是什么原因造成的呢?其实也很简单,我们看下数据库tb_item表中存储的数据格式,我们刚添加的手机image字段存储的信息如下所示,可以看到是两张图片地址中间以”,”分隔拼成的字符串,这样的字符串在search.jsp页面中是无法正常显示的,我们需要把图片进行拆分,显示其中的一张才行。

http://192.168.25.133/group1/M00/00/00/wKgZhVk5T0KAMuguAAD6nNM0jms024.jpg,http://192.168.25.133/group1/M00/00/00/wKgZhVk5T0KAXsKmAABvaLLSa9M334.jpg

要解决该问题,我们可以在taotao-common工程的SearchItem类中添加一个如下所示的方法。

public String[] getImages() {
    if (image != null && !"".equals(image)) {
        String[] strings = image.split(",");
        return strings;
    }
    return null;
}


除此之外,我们还要修改search.jsp页面,如下图所示。 

修改了taotao-common,我们便要把taotao-common工程重新打包到本地maven仓库,然后重启taotao-search-web工程,重启之后,我们重新搜索”iPhone”便可以看到图片了,如下图所示。 

至此,我们的商品搜索功能终于完成了!!!

时间: 2024-10-24 20:15:15

(转)淘淘商城系列——商品搜索功能测试的相关文章

(转) 淘淘商城系列——使用FastDFS-Client客户端进行上传图片的测试

http://blog.csdn.net/yerenyuan_pku/article/details/72804018 不久之前,我们实现了商品的类目选择这个功能,但这只是万里长征的第一步,我们还有很多事情需要做,例如怎样实现图片上传这个功能.本文就来教大家如何实现图片上传. 图片上传分析 我们知道,对于传统项目来说,所有的模块都在一个项目中开发,包括所有静态资源文件比如图片等,都存储在这一个tomcat服务器上,如下图所示. 如果访问量小的话,这样做问题倒不大,但是对于互联网项目来说,用户访问

第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)

https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第五天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第六天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)[第七天](redis缓存) 第04

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 一.前言 大家好,今天我要来讲讲一个比较实用的爬虫工具,抓取淘宝的关键字商品信息,即是: 输入关键字,按照价格等排序,抓取列出的商品信息以及下载图片,并且支持导出为Excel. 如果如下: 看完下面的讲解,Python语言就掌握得差不多,中级水平了,而且这个封装后的工具还是很好用的. 感觉自己萌萌哒~~ 二.原理 大家知道什么叫爬虫,它也叫网络蜘蛛,机器人等,意思就是说自动的程序,可以去抓取使用网络协议传输的内容. 目前来讲爬虫主

(转)淘淘商城系列——实现图片上传功能

http://blog.csdn.net/yerenyuan_pku/article/details/72808000 上文我们使用FastDFS-Client进行了简单的文件上传操作测试,淘淘商城项目中添加商品时上传图片的功能还没实现,如下图所示.本文将花大量笔墨来教大家如何实现图片上传这个功能. 我们来看下item-add.jsp页面,可以看到上传图片触发的方法是通过叫做picFileUpload的class来处理的,在<a>标签的下方是一个隐藏域,是用来接收图片上传到图片服务器的回显地址

(转)淘淘商城系列——Solr集群搭建

http://blog.csdn.net/yerenyuan_pku/article/details/72957201 我们之前做的搜索使用的是Solr的单机版来实现的,正是由于我们现在商品数据量不多,才几千条而已.如果商品数据量变得非常庞大,比如说淘宝,淘宝上面的商品数量特别多,我们用一个单机版的Solr能实现吗?这里面就可能有问题了,一个是数据量特别庞大,每一个服务器存储容量是有上限的,一旦磁盘存不下了怎么办呢?这是不是有问题啊?还有就是由于淘宝的用户访问量很多,搜索的人也有很多,并发量很高

淘淘商城02——dubbo框架整合_商品列表查询实现_分页

1.   课程计划 1.服务中间件dubbo 2.SSM框架整合. 3.测试使用dubbo 4.后台系统商品列表查询功能实现. 5.监控中心的搭建 2.   功能分析 2.1. 后台系统所用的技术 框架:Spring + SpringMVC + Mybatis+dubbo 前端:EasyUI 数据库:mysql 2.2. 系统间通信 由于淘淘商城是基于SOA的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 如何实现远程通信? 1.使用WebService:效率

淘宝APP商品搜索API提取

@TOC 淘宝APP商品搜索API提取 业务部门反馈PC和WAP版的协议有访问频次限制,经测试APP端基本可以满足,因此,今天我们开始提取相应API. 流程 抓包:经过分析得知,此处为搜索相应接口 分别分析请求头及参数,分别封装成类: 请求头 @Data @Builder @NoArgsConstructor @AllArgsConstructor public class TaobaoHttpHeader { @Builder.Default private String utdid = Ra

(转) 淘淘商城系列——Redis的安装

http://blog.csdn.net/yerenyuan_pku/article/details/72849612 通过上文的学习,我相信大家已经将首页的轮播图展示出来了,接下来我们将进入一个新的领域的学习,希望大家能振作精神,保持乐观向上的心态.本文我会教大家如何在Linux系统上安装Redis. 一般来说,如果我们是做一个互联网项目,通常都要在工程中添加缓存,之所以这样做,是因为在互联网项目中查询功能是非常频繁的,如果每次查询都调用数据库的话,会给数据库造成很大的压力,因此需要在用户和数

淘淘商城系列——使用maven构建工程

开发工具和环境 这里,我统一规范一下淘淘商城的开发工具和环境,如下: Eclipse 4.5.2(Mars2),其自带maven插件,需要手工安装svn插件,但我提供的这个eclipse,svn插件已经搭好了 Maven-3.3.9(开发工具自带) Tomcat-7.0.75(Maven Tomcat Plugin) JDK 1.7 MySQL 5.7.17 Nginx 1.8.0 Redis 3.0.0 Win10 操作系统 SVN(版本管理工具) 工程搭建 使用maven的好处 项目构建.M