十二、商城业务 | 商品检索
【摘要】商城业务 | 商品检索
前言
173、商城业务-检索服务-搭建页面环境
在zheli-search.pom添加依赖。
1 | <dependency> |
把搜索页/html
拷贝到search服务的resources/templates
下。其他静态资源放置在nginx/html/static/search
中。
修改host文件,添加search.zhelimall.com 127.0.0.1
。
修改nginx/conf/conf.d/zhelimaill.conf
中的server_name
。
1 | server{ |
配置网关服务
1 | - id: zhelimall_host_route |
重启网关服务、搜索服务和nginx。访问search.zhelimall.com
就可以看到对应的页面了。
配置完成后Nginx的转发效果如下所示。
174、商城业务-检索服务-调整页面跳转
前面搭建好了检索的页面,接下来就来梳理一下整个商城的检索逻辑。
引入devtools
热启动,关闭thymeleaf
缓存功能。
application.properties
1 | false = |
通过现有的分析,我们在首页有两处会进入搜索页面。第一处是通过点击分类,第二处是搜索框。
点击搜索跳转到的是http://search.zhelimall.com/list.html?catalog3Id=225
。
1 | package com.aiz.zhelimall.search.controller; |
175、商城业务-检索服务-检索查询参数模型分析抽取
检索业务分析
商品检索三个入口:
- 选择分类进入商品检索
- 输入检索关键字展示检索页
- 选择筛选条件进入
检索条件&排序条件
- 全文检索:skuTitle -> keyword
- 排序:saleCount(销量)、hotScore(热度分)、skuPrice(价格)
- 过滤:hasStock、skuPrice区间、brandId、catalog3Id、attrs
- 聚合:attrs
完整查询参数
- keyword=小米 &sort=saleCount_desc/asc&hasStock=0/1&skuPrice=400_1900&brandId=1&catalog3Id=1&attrs=1_3G:4G:5G&attrs=2_骁龙845&attrs=4_高清屏
检索语句构建
结果提取封装
检索条件分析。
SearchParam.java
1 | /** |
SearchController.java
1 |
|
176、商城业务-检索服务-检索返回结果模型分析抽取
前面已经把页面提交过来的所有请求查询参数封装成指定的对象,这部分需要分析检索返回结果的模型。观察页面可以知道这边返回的应该是所有的商品信息。由于我们是在es中检索的,所以我们查到的也是es中商品的模型数据。
SearchResult.java
1 | /** |
177、商城业务-检索服务-检索DSL测试-查询部分
模糊匹配,过滤(按照属性、分类、品牌、价格区间、库存),排序,分页,高亮,聚合分析。
1 | GET product/_search |
查询结果。
1 | { |
178、商城业务-检索服务-检索DSL测试-聚合部分
重新定义文档,之后数据迁移。
1 | "mappings": { |
聚合部分。注意:attr_agg
部分没调试成功,暂时忽略。
1 | GET product/_search |
179、商城业务-检索服务-SearchRequest构建-检索
180、商城业务-检索服务-SearchRequest构建-排序、分页、高亮&测试
访问http://search.zhelimall.com/list.html?keyword=
测试一下。控制台打印如下信息:
1 | 构建的DSL语句{"from":0,"size":2,"query":{"bool":{"filter":[{"term":{"hasStock":{"value":true,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}} |
1 | { |
181、商城业务-检索服务-SearchRequest构建-聚合
182、商城业务-检索服务-SearchResponse分析&封装
183、商城业务-检索服务-验证结果封装正确性
184、商城业务-检索服务-页面基本数据渲染
185、商城业务-检索服务-页面筛选条件渲染
186、商城业务-检索服务-页面分页数据渲染
187、商城业务-检索服务-页面排序功能
188、商城业务-检索服务-页面排序字段回显
189、商城业务-检索服务-页面价格区间搜索
190、商城业务-检索服务-面包屑导航
191、商城业务-检索服务-条件删除与URL编码问题
192、商城业务-检索服务-条件筛选联动