一、聚合搜索平台简介
聚合搜索平台简介
技术栈介绍
全栈
前端
- Vue
- Ant Design Vue
- Lodash
后端
- Spring Boot
- MySQL
- Elasticsearch (Elastic Stack) 搜索引擎
- 数据抓取
- 数据同步
- 4种
- logstash
- Canal
- Guava Retrying
- 怎么保证 API 的稳定性
业务流程
- 先得到各种不同分类的数据
- 提供一个搜索页面(单一搜索、聚合搜索),支持搜索
可以去做一些优化,比如关键词高亮、防抖节流
项目计划
第一期
- 前端后端项目初始化
- 前端搜索页面开发完成
- 后端基本搜索接口开发完成
第二期
- 数据抓取
- 聚合搜索接口的开发
- 适配器
- 门面模式
- Elasticsearch 搭建及热门
第三期
Elasticsearch 的使用(建表、读写数据、调 API 、和 Java 整合)
数据同步(四种同步方式)
第四期
- 接口稳定性保障
- 项目优化(关键词高亮、搜索建议、防抖节流)
时间安排
- 前端初始化 10 min
- 后端项目初始化 10 min
- 前端搜索页面开发 20 min
- 整合 Axios 10 min
- 后端搜索接口开发 10 min
前端初始化
- 参考 Ant Design 组件库的官方文档来搭建初始化项目
(https://2x.antdv.com/docs/vue/getting-started-cn),并整合组件库 - 删减不需要的页面和路由
后端初始化
- 使用星球 springboot-init 万用项目模板即可
- 直接使用 Swagger 文档在线测试接口
前端开发
记录搜索状态
目标:用 url 记录页面搜索状态,当用户刷新页面时,能够从 url 还原之前的搜索状态需要双向同步:url <=> 页面状态
核心小技巧:把同步状态该为单向,即只允许 url 来改变页面状态,不允许反向
分步骤来实现,思路更清晰:
- 让用户在操作的时候,改变 url 地址(点击搜索框,搜索内容填充到 url 上,切换 tab 时,也要填充)
- 当 url 改变的时候,去改变页面状态(监听 url 的改变)
前后端联调
前端整合 Axios,并自定义 Axios 实例,完成请求:https://www.axios-http.cn/docs/intro
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 墨枫个人博客!
评论