淘淘商城——商品搜索功能测试

到这里,我相信你们也是不容易,我本身也算是很不容易写到这里,但愿本身能一直写下去。以前咱们就差很少把商品搜索功能实现了,本文咱们来一块儿测试下该搜索功能。
首先咱们要保证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页面中是没法正常显示的,咱们须要把图片进行拆分,显示其中的一张才行。web

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类中添加一个以下所示的方法。redis

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”即可以看到图片了,以下图所示。
这里写图片描述
至此,咱们的商品搜索功能终于完成了!!!数据库