聚合搜索后端运行&部署文档

环境准备

本地启动

设置 Maven 完成 https://www.codefather.cn/post/1836689783992958977

使用 IDEA 打开项目

image-20250224214450432

初始化数据

连接本地 MySQL

image-20241030155405801

image-20241030155543228

点击 Download 下载 driver files

image-20241030155613559

输入,账号密码之后点击Test Connection 成功之后直接点击 OK

image-20241030155950071

找到根目录 sql 目录下面的 create_table.sql

Ctrl + A 全选代码右键选择 Execute

image-20250224215601236

image-20250224215737539

安装依赖

  • 首先需要配置好本地 Mavne, 和阿里云镜像,要是没有配置的话可以看一下这篇文章
image-20241112134330112

然后可以在 Build 看到正在下载依赖

image-20241101132248226

选择 Java 版本

image-20241101132905013 image-20250216185612629

没有的话可以使用下面的 Download JDK

image-20241114112524129 image-20250216185720974
  • 本地没有 JDK 可以直接 Download JDK
  • 本地有 JDK 但是没识别到 Add JDK from disk 选着对应目录即可
  • 选择 Java >= 8 建议 8

安装 Elasticsearch

环境准备里面有下载链接,下载之后解压到常用软件的路径

1、进入 elasticsearch/bin 在对应的目录输入 cmd

image-20241111151255652

2、直接输入命令就可以执行成功,但是要注意在使用的时候一定不要把这个窗口给关闭

text
复制代码
elasticsearch.bat
image-20241111151545481

3、如何简化启动步骤呢?

elasticsearch 也给了我们更简单的启动方式,在 WindowsServices 启动

elasticsearch 安装到 Services 也给了对应的 bat 一键执行成功

1)在根目录的 bin 文件夹输入 cmd

image-20241111152043832
text
复制代码
elasticsearch-service.bat
image-20241111152153194

2)找到 Windows 的 Service

Win + R 输入 Services.msc

找到 elasticsearch 直接点击左侧的 启动

image-20241111152425409

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

image-20241111152643095


安装 analysis-ik

1)在 elasticsearch/bin 目录下面输入 cmd

这个 {version} 版本看你下载的版本

image-20241111223915204
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

image-20241111224019978

2)查看是否安装成:

text
复制代码
elasticsearch-plugin list

image-20241111224259328

3)需要重启 elasticsearch

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

image-20241111225513339

4、验证是否启动成功

访问:http://localhost:9200

image-20250224223952012

安装 kibana

这个是 elasticsearch 的可视化工具所以要确保 elasticsearch 是运行状态

1)进入到 kibana-7.17.9/bin 目录在上方地址栏输入cmd

image-20241111181345498

2) 输入

text
复制代码
kibana.bat

image-20241111182017581

可能稍微有点慢

4)启动地址 http://localhost:5601

image-20241111182057997

5)dev Tools

image-20241111182147163

image-20241111182230055

使用 ES

1、需要本地启动 ElasticsearchKibana

2、初始化所需文件 sql/post_es_mapping.json

image-20250224222923212

3、启动 kibanahttp://localhost:5601DevTools

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" } } } }
image-20241111231707152

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 即可

image-20241111221518526

修改配置文件

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

image-20241101133355503

  • 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

image-20250207143131932

2)APPID、SecretKey 、SecretId 都是 https://console.cloud.tencent.com/capi 获取的,注意 SecretKey 只能在创建的时候可见,注意保存!

image-20250207143248159

3)host、bucket、region 都在 COS 对象存储那里获取

首先需要创建存储桶,位置 https://console.cloud.tencent.com/cos/bucket

image-20241215221117299

image-20241215221153704

image-20241215221217471

4)获取 host、bucket、region 信息

位置 https://console.cloud.tencent.com/cos/bucket

image-20241215225126493

image-20241215223740852

本地运行

image-20250224224126547

image-20250224224219783

制作 + 上传 JAR 包

image-20250216215421414

Lifecycle -> package 双击

之后我们就可以在 target 目录下面找到打包好的 jar 包


如果报错的话:

  1. 删除 target 目录(IDEA 右键删除即可),重新打包尝试
  2. Maven -> Lifecyle -> clean
  3. 退出 IDEA 在文件管理器找到该项目的 .idea 文件右键删除 ,然后重新打开 IDEA 重新走一遍流程
image-20240928104016670 image-20240928104101415

部署

后面可以参考这篇文章 『 后端部署(通用) 』

相关专栏

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
作者分享
Spring 团队开发者布道师 Josh Long,从 2011 年起每周二坚持写 This Week in Spring https://spring.io/authors/joshlong,大概 15 年半从未间断,到现在大概写了 800 期以上😱 大佬在采访里他说,写博客不是额外负担,而是逼自己整理每周所学的「强制机制」——反正本来就会刷社区动态,写出来既方便自己,也帮到别人。更重要的是 Spring 一直在变:微服务、AI……永远有新东西可聊,停一周就容易掉队。一旦养成习惯,坚持往往比重新开始更容易。 这种级别的大佬都还在用周更逼自己不掉队,我更没理由再拖了。还有之前左耳朵耗子大佬说的 ARTS 打卡,我老实说只撑了两周,真的需要捡起来了,加油✊
10
试了下 Grok CLI:curl -fsSL https://x.ai/cli/install.sh | bash 虽然功能不如 Claude Code 全,但能免费用 Grok 4.5 啊😍。一行 prompt 大概 3 分钟就生成出来了而且没有报错:" Three.js UMD 构建。正在实现完整的太阳系模拟(含自定义轨道控制,兼容本地打)"。 大伙可以访问试试:https://solar-system-seven-mocha.vercel.app/
4
彻底搞懂 Spring AI Tool Calling:从底层协议到源码执行全流程
7
别用 JWT 管理用户会话
9
没想到 Bot 占全球 HTML 流量的 50% 以上了,被这个比例给震惊到了。还有开发者在评论区说自己的网站「每天」访问量 250k 但是 Cloudflare 显示真实的用户只有 150 个😱 数据来源:https://radar.cloudflare.com/traffic#bot-vs-human
5
下载 APP