聚合搜索中台
Last updated on November 26, 2023 am
聚合搜索项目
项目介绍
聚合搜索就是输入一个关键字,对于用户可以使用户在同一个入口搜索到不同的内容分类,不同形式的内容,提升用户的检索效率;对于企业来说无需对每一个项目进行搜索功能的开发,当有新的内容或者新的网站,可以进行复用,提高开发效率。
技术栈
前端:
- Vue
- Ant Design Vue
- Lodash
后端:
- Spring Boot
- MySQL
- ES
- 数据抓取
- 数据同步(Logstash、Canal)
- Guava Retrying
- 怎么保证API的稳定性?
业务流程
- 先得到不同分类的数据
- 提供一个搜索页面
- 业务优化(关键词高亮、防抖节流)
package.json
1 |
|
Day01
开发计划
- 前端初始化
- 后端初始化
- 前端搜索页面开发
- 整合
Axios
- 后端搜索接口开发
前端开发
用URL来记录用户的搜索状态,以便于进行分享。也就是将URL状态与页面状态同步
核心小技巧:把同步状态改成单向的,即只允许URL改变页面状态,不允许反向修改
步骤分析:
- 用户进行页面搜索的时候,URL地址跟着同步改变;
- 当URL变动时,页面状态也随之改变(监听URL的变动)
后端开发
直接套用模板
前后端联调
前端整合Axios,自定义Axios实例,完成请求https://www.axios-http.cn/docs/intro
Day02
数据分析
获取多种不同的数据源
1. 获取文章(内部)
抓取网站的内容,例如抓取文章等。。。
数据抓取的几种方式:
直接访问数据接口(最方便)
等网页渲染完毕出明文,从前端内容进行抓取
有一种网站是动态请求的,,不会一次加载,例如会用验证码来验证是否是真人(相对复杂,如何解决?后台通过程序控制浏览器,以代替人工继续验证等)selenium、nodejs、puppetter
用户(内部)
图片(外部,不是我们自己的项目)
- 前后端接口联调,跑通整个页面(至此完全可以应付毕设)
- 分析项目的问题,进一步优化,聚合接口的开发
- 安装ES
断更,待完成!!!
聚合搜索中台
https://wlei224.gitee.io/2023/08/01/aggregateSearch/