项目简介
本聚合搜索平台是企业级搜索中台,为用户提供统一搜索页面,能集中搜索不同来源、不同类型的内容,有效提升检索效率与搜索体验。企业若有多个项目数据需搜索,无需为每个项目单独开发搜索功能,直接将数据接入搜索中台即可,大大提高开发效率。
项目的主要特性和功能
技术栈
- 前端:采用Vue和Ant Design Vue。
- 后端:运用Spring Boot、MySQL、Elasticsearch,具备数据抓取(离线、实时)、数据同步(定时、双写、Logstash、Canal)功能,支持JMeter压力测试。
主要功能
- 用户管理:涵盖用户登录、注册、注销、更新、检索以及权限管理。
- 帖子管理:支持帖子创建、删除、编辑、更新,具备数据库检索、ES灵活检索功能,可进行点赞、取消点赞、收藏、取消收藏操作,能检索已收藏帖子,还有全量同步ES、增量同步ES定时任务。
- 搜索功能:支持微信开放平台登录、微信公众号订阅、收发消息、设置菜单,可分业务进行文件上传。
- 数据抓取:可从互联网获取基础数据,支持直接请求数据接口、网页解析、动态请求等抓取方式。
- 聚合接口:通过一个接口请求所有数据并统一返回结果,支持分页查询。
- 搜索优化:使用Elastic Stack进行数据整合、提取、存储和使用,支持HTTP Restful调用、Kibana操作、Java客户端操作。
- 数据同步:支持定时任务、双写、Logstash、Canal等多种同步方式,确保MySQL与Elasticsearch数据一致。
- 压力测试:使用JMeter进行压力测试,保障系统在高并发下的稳定性。
安装使用步骤
环境准备
- 安装并配置MySQL数据库,创建相应的数据库和表结构。
- 安装并配置Redis,用于分布式登录和缓存。
- 安装并配置Elasticsearch,用于全文搜索。
- 配置腾讯云COS对象存储,用于文件上传和存储。
项目配置
- 数据库配置:修改
application.yml
中的数据库配置,指向你的MySQL数据库。yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_db username: root password: 123456
- Redis配置:修改
application.yml
中的Redis配置,指向你的Redis实例。yaml spring: redis: database: 1 host: localhost port: 6379 timeout: 5000 password: 123456
- Elasticsearch配置:修改
application.yml
中的Elasticsearch配置,指向你的Elasticsearch实例。yaml spring: elasticsearch: uris: http://localhost:9200 username: root password: 123456
启动项目
- 复制项目代码到本地。
- 使用IDE(如IntelliJ IDEA)打开项目。
- 运行
MainApplication
类启动Spring Boot应用。 - 访问
http://localhost:8101/api/doc.html
打开接口文档,进行在线调试。
数据同步
- 全量同步:首次安装完Elasticsearch后,执行全量同步脚本,将MySQL数据全量同步到Elasticsearch。
- 增量同步:配置定时任务或使用Canal监听MySQL Binlog,实时同步新增和修改的数据到Elasticsearch。
使用聚合搜索
- 访问聚合搜索页面,输入关键词进行搜索。
- 系统将同时从文章、图片、用户等多个数据源中检索相关内容,并在同一页面展示搜索结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】