聚合搜索后端运行&部署文档
环境准备
- 聚合搜索平台源码
- IDEA 你懂的教程
- Redis 网盘安装包 提取码: vmty
- MySQL5.7 网盘安装包 提取码:bbr5
- MySQL8.0 网盘安装包提取码:g17s
- MySQL 安装指南
- MySQL 官方下载链接
- ES 链接: 百度网盘 提取码: f32k
- Kibana 百度网盘 提取码: i1ku
本地启动
设置 Maven 完成 https://www.codefather.cn/post/1836689783992958977
使用 IDEA 打开项目
初始化数据
连接本地 MySQL

点击 Download 下载 driver files

输入,账号密码之后点击Test Connection 成功之后直接点击 OK
找到根目录 sql 目录下面的 create_table.sql
Ctrl + A 全选代码右键选择 Execute


安装依赖
- 首先需要配置好本地
Mavne, 和阿里云镜像,要是没有配置的话可以看一下这篇文章
然后可以在 Build 看到正在下载依赖

选择 Java 版本
没有的话可以使用下面的 Download JDK
- 本地没有 JDK 可以直接
Download JDK - 本地有 JDK 但是没识别到
Add JDK from disk选着对应目录即可 - 选择 Java >= 8 建议 8
安装 Elasticsearch
在 环境准备里面有下载链接,下载之后解压到常用软件的路径
1、进入 elasticsearch/bin 在对应的目录输入 cmd

2、直接输入命令就可以执行成功,但是要注意在使用的时候一定不要把这个窗口给关闭
▼text复制代码elasticsearch.bat
3、如何简化启动步骤呢?
elasticsearch 也给了我们更简单的启动方式,在 Windows 的 Services 启动
把 elasticsearch 安装到 Services 也给了对应的 bat 一键执行成功
1)在根目录的 bin 文件夹输入 cmd
▼text复制代码elasticsearch-service.bat
2)找到 Windows 的 Service
Win + R 输入 Services.msc
找到 elasticsearch 直接点击左侧的 启动

关闭就找到左侧的 关闭即可,一键操作

安装 analysis-ik
1)在 elasticsearch/bin 目录下面输入 cmd
这个 {version} 版本看你下载的版本
▼text复制代码elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/{version}
比如:
▼text复制代码elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.17.9

2)查看是否安装成:
▼text复制代码elasticsearch-plugin list

3)需要重启 elasticsearch
win + R 输入 services.msc 找到 elasticsearch 直接找到左侧的 Restart (重启)

4、验证是否启动成功
安装 kibana
这个是 elasticsearch 的可视化工具所以要确保 elasticsearch 是运行状态
1)进入到 kibana-7.17.9/bin 目录在上方地址栏输入cmd

2) 输入
▼text复制代码kibana.bat

可能稍微有点慢
4)启动地址 http://localhost:5601

5)dev Tools


使用 ES
1、需要本地启动 Elasticsearch 、Kibana
2、初始化所需文件 sql/post_es_mapping.json

3、启动 kibana 在 http://localhost:5601 的 DevTools
▼json复制代码PUT post_v1 { "aliases": { "post": {} }, "mappings": { "properties": { "title": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "tags": { "type": "keyword" }, "userId": { "type": "keyword" }, "createTime": { "type": "date" }, "updateTime": { "type": "date" }, "isDelete": { "type": "keyword" } } } }
4、注释相关代码注释
开启同步任务,将数据库的帖子同步到 Elasticsearch
找到 com.yupi.yuso.job.once.FullSyncPostToEs 注释掉
▼java复制代码// todo 取消注释开启任务 @Component @Slf4j public class FullSyncPostToEs implements CommandLineRunner
找到 com.yupi.yuso.job.once.FetchInitPostList
▼java复制代码//@Component @Slf4j public class FetchInitPostList implements CommandLineRunner
找到 com.yupi.yuso.job.cycle.IncSyncPostToEs
▼java复制代码// todo 取消注释开启任务 @Component @Slf4j public class IncSyncPostToEs
5、修改配置
等部署到服务器上,urls 修改成 http://IP:9200
如果设置账号名和密码,就把对应的信息写到 username 和 password 即可
▼yml复制代码spring: # Elasticsearch 配置 # todo 需替换配置,然后取消注释 elasticsearch: uris: http://localhost:9200 # username: root # password: 123456
BUG
Failed to parse mapping [_doc]: analyzer [ik_smart] has not been configured in mappings
解决:通过安装 analysis-ik 即可

修改配置文件
配置文件在下面项目的 resources 目录

- application.yml 默认是本地运行时生效的配置
- application-prod.yml 当在服务器指定
--spring.profiles.active=prod才会生效,一般写线上配置,比如:线上 MySQL、Redis ... - application-test.yml 当在服务器指定
--spring.profiles.active=test才会生效
1、MySQL
▼yml复制代码spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_db # yuapi 是数据库的名称 如果是远程 MySQL 例如: jdbc:mysql://192.129.11.11:3306/yuapi username: root # 用户名 password: 123456 # MySQL 设置的密码
2、Redis ,如果使用 Redis 修改 @SpringBootApplication(exclude = {RedisAutoConfiguration.class}) 把 exclude 里面的内容去掉就可以正常使用 Redis
▼yml复制代码spring: redis: database: 1 host: localhost # 如果线上改成线上 IP port: 6379 # Redis 具体运行端口,默认安装 6379 timeout: 5000 # password: 123456 # 密码,默认安装没有密码,如果服务器 Redis 有密码就修改
3、COS 相关的配置
▼yml复制代码# 对象存储 cos: client: accessKey: xxx secretKey: xxx region: xxx bucket: xxx
这个 accessKey 就是 SecretId !
官方文档:https://cloud.tencent.com/document/product/436/56390

2)APPID、SecretKey 、SecretId 都是 https://console.cloud.tencent.com/capi 获取的,注意 SecretKey 只能在创建的时候可见,注意保存!
3)host、bucket、region 都在 COS 对象存储那里获取
首先需要创建存储桶,位置 https://console.cloud.tencent.com/cos/bucket


4)获取 host、bucket、region 信息
位置 https://console.cloud.tencent.com/cos/bucket


本地运行

制作 + 上传 JAR 包

Lifecycle -> package 双击
之后我们就可以在 target 目录下面找到打包好的 jar 包
如果报错的话:
- 删除
target目录(IDEA 右键删除即可),重新打包尝试 - Maven -> Lifecyle -> clean
- 退出 IDEA 在
文件管理器找到该项目的.idea文件右键删除 ,然后重新打开 IDEA 重新走一遍流程
部署
后面可以参考这篇文章 『 后端部署(通用) 』

