欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

蘑菇博客发布了最新版本的更新!

最编程 2024-01-15 07:45:21
...

蘑菇博客新版本更新啦~_搜索

作者:陌溪

陌溪的校招笔记:http://note.moguit.cn

大家好,我是 ​陌溪

最近看了看蘑菇博客的版本更新,发现还停留在6个月前,也就是还在学校期间更新的版本。后面因为毕业答辩的事情,项目迭代的频率就下降了,想着这阵子也修复了很多 ​BUG​,终于可以发行一个 ​V6.2​ 的稳定版本啦~

蘑菇博客新版本更新啦~_搜索_02上一次发行版

首先非常感谢踊跃提交 ​PR​ 完善蘑菇博客的小伙伴:@allworldg、@苍山如海丶残阳如血、@阿灿、 @遇见c。

蘑菇博客新版本更新啦~_solr_03

下面,让我们一起来看看,这次蘑菇博客的版本更新中,解决了哪些问题吧,

  • fix​: 暂时移除导航栏白名单功能,解决网站出现 ​401​ 的问题

  • feat:​ 增加是否开启注册邮件激活功能,开启后需要通过邮箱验证才能完成注册

  • fix​: 解决博客本地上传时存在图片无法正常显示的问题

  • fix​: 解决导航栏加载出现警告的问题

  • fix​: 优化推荐文章显示

  • fix​: 解决​Markdown​编辑器无法上传图片和数据回显的问题

  • fix​: 修复 ​nacos​ 连接数据库配置 解决 ​admin​ 账号权限时的问题

  • fix​:解决点击点赞按钮后,更新的点赞数量会从子组件试图更新父组件,导致显示错误,感谢小伙伴 @allworldg 的 ​PR​ 。

  • fix​: 修复 ​Firefox​ 和 ​Chrome​ 浏览器下搜索框样式显示异常的问题。

  • fix​: 图片选择器变更为懒加载,提升访问速度。

  • feat​: 完善博客备份功能,编辑博客时也支持实时备份

  • feat​: 删除文章时,同步删除该文章下所有的评论

  • fix​: 点赞博客增加文章信息展示

  • fix​: 解决 ​Sentinel​ 出现的异常,优化 ​Markdown​ 编辑器下博客备份功能

  • fix​: 修复转载博客版权读取错误,感谢群里小伙伴 @苍山如海丶残阳如血 的 ​PR​。

  • feat​: 专题图片增加兜底显示。

  • fix​: 解决后台管理使用手机登录失败的情况。

  • fix​: 修复网盘管理文件夹为空的问题。

  • feat​: 网站新增友链申请模板

  • fix​:采用静态代码块,减少在根据ip地址获取地理信息时的资源消耗,感谢小伙伴 @阿灿 的 ​PR​。

  • fix​: 采用线程池,完成异步存储日志逻辑实现,感谢小伙伴 @阿灿的 ​PR​。

  • feat​:解决执行异步线程收集日志时出现的空指针情况。

  • fix​:退出登录时候,清空Security中的用户信息。整个生命周期可能同时有多个用户在使用。这时候应用需要保存多个 ​SecurityContext​(安全上下文),需要利用 ​ThreadLocal​ 进行保存,每个线程都可以利用​ThreadLocal​ 获取其自己的 ​SecurityContext​,及安全上下文。用户退出时清除其在​SecurityContextHolder​ 中的上下文信息,感谢群里小伙伴 @遇见 的PR。

  • fix​: 修复表情弹出框出现的异常。

  • fix​: 修改爬虫模块图片爬取的地址,优化图片截取正则表达式。

  • fix​: 修复后台管理登录失败时的登录限制时长

  • fix​: 解决后台管理搜索时出现的 ​BUG

  • fix​:解决 ​Banner​ 出现边框的问题,解决反馈无法删除的问题

  • feat​: 更新文档,新增一条命令部署蘑菇博客。

  • feat​:优化网站布局样式,评论支持 ​Markdown

  • fix​:修复mogu_sms 启动时的问题

  • fix​:修正备案跳转问题

  • feat​:增加搜索模式开关控制;支持一键切换 ​SQL​ 搜索、​ES​搜索、​Solr​搜索

感兴趣的小伙伴,可以去到 ​Gitee​ 查看本次版本更新的信息

https://gitee.com/moxi159753/mogu_blog_v2/releases/v6.2

下面就说说最近小伙伴提到的一些需求,也欢迎各位小伙伴在使用蘑菇的时候,能够提出自己的宝贵意见~

搜索模式支持开关控制

最近群里的小伙伴 ​@泪梦红尘​ 在群里咨询关于蘑菇全文检索 ​ES​ 和 ​MySQL​ 切换开关放在哪里,因为之前都是通过手动修改源码完成设置的,所以也并没有配置开关操作。


蘑菇博客新版本更新啦~_搜索_04

群里小伙伴的建议

熟悉蘑菇博客的小伙伴是可以发现,陌溪是把很多的功能封装成了开关,比较常见的开关功能有:

图片的存储方式:支持本地存储、​minio​ 存储、七牛云存储

蘑菇博客新版本更新啦~_搜索_05蘑菇中的开关控制

然后就是文本编辑器切换,目前支持 ​富文本编辑器​ 以及 ​Markdown​ 编辑器。富文本编辑器用的是 ​ckeditor​,也是陌溪比较喜欢用的一款,特别简洁~。

蘑菇博客新版本更新啦~_solr_06CKEditor富文本编辑器

如果小伙伴喜欢用 ​Markdown​ 编辑器的话,直接开关选择即可,这个时候切换到 ​Vditor​。Vditor是我用过能达到 ​Typora​ 体验效果的编辑器了,支持​及时渲染​,​所见即所得​等模式。

蘑菇博客新版本更新啦~_搜索_07Vditor编辑器

同时网站的登录方式,也可以通过开关进行控制,比如目前蘑菇博客就开放了 ​码云​、​Github​ 和 ​QQ​ 登录。

蘑菇博客新版本更新啦~_搜索_08登录方式切换

通过选择不同的登录方式,可以使门户页面支持不同的登录。

蘑菇博客新版本更新啦~_elasticsearch_09

门户登录

而这次作为赞助 ​蘑菇服务器​ 的大佬提的需求,支持搜索模式开关控制,陌溪当然要第一时间就响应。

起初蘑菇博客使用的 ​Solr​ 作为全文检索的,然后在代码开源后,发现留言区有些小伙伴更偏向于使用​ElasticSearch​ 作为检索工具,因此特意将蘑菇博客改成支持 ​ElasticSearch​ 检索的,但是有些小伙伴又还是想保留原来的 ​Solr​,后面我就想了个方法,也就是将同时支持多种搜索模式,​Solr​、​ElasticSearch​、​SQL​ 语句,小伙伴可以根据自己的喜好或者服务器的配置,选择相应的搜索模块即可。

因为大家都是使用入门服务器 ​1C2G​ 部署蘑菇的,所以默认是使用的都是 ​SQL​ 方式进行搜索,也就是下面这样的

select * from t_blog where title like "%搜索内容%";

但如果要切换其它的搜索方式的话,应该怎么办呢?

这个时候必须去修改源码,然后打包镜像进行发布,过程会比较繁琐,也容易出错。但是因为大家切换的频率不是很高,所以也一直没有听到有小伙伴有提到。

本次更新,在蘑菇后台系统配置新增了文章搜索模式开关:支持 ​Solr​ 搜索、​ES​ 搜索、​SQL​ 搜索

蘑菇博客新版本更新啦~_elasticsearch_10搜索模式切换

目前,支持小伙伴们进行一键切换啦~。不过由于 ​Solr​ 使用的人数不多,因此暂时只适配了 ​ES​ 搜索和 ​SQL​ 搜索两种方式进行切换,关于源码的变动,感兴趣的小伙伴可以查看我上次的提交。

https://gitee.com/moxi159753/mogu_blog_v2/commits/Nacos

下面来说说如何切换到 ​ES​ 搜索,首先执行陌溪写的一键部署脚本,完成蘑菇博客环境的搭建。

wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh

也可以参考陌溪Bilibili录制的视频教程完成博客初始环境的一键搭建。


因为一键部署脚本只支持核心板启动,而切换 ​ES​ 搜索需要用到 ​mogu-search​ 和 ​elk​。因此,在完成博客的初始环境搭建后,进入到 ​docker-compose​ 文件夹

# 给文件夹增加权限
chown -R 1000:1000 data/elasticsearch_data
chown -R 1000:1000 log/elk

然后执行下面的脚本,安装 ​elk​,​elk​ 由 ​ElasticSearch​ 、​Logstash​、​Kibana​ 组成

docker-compose -f yaml/elk.yml up -d

同时在启动后,也可以使用下列命令通过查看启动日志

docker logs -f -t elk

关于如何验证启动是否成功,可以输入:​ip + 9200​,如果出现下面的标识,标识已经启动成功了

蘑菇博客新版本更新啦~_搜索_11验证es启动

安装的 ​elk​ 也包含了 ​kibana​,可以输入:​域名 + 5601​ 访问图形化界面,在这里面可以搭建一些​日志​看板。

蘑菇博客新版本更新啦~_solr_12验证kibana启动

在 ​ELK​ 启动成功后,就可以接着启动 ​mogu-search​ 项目。如果看过​搜索模块​源码的小伙伴,是可以发现目前 ​mogu-search​ 是通过注释的方式来进行切换的,因为 ​ES​ 用的比较多,所以默认是把 ​solr​ 相关的代码注释了起来的,未来的话陌溪可能会考虑制作两个镜像,一个是 ​mogu-search-es​,另外一个是 ​mogu-search-solr​,然后通过运行不同的镜像,使用不同的全文检索工具。

在启动前需要先配置一下 ​ElasticSearch​ 的地址,到 ​nacos​ 页面,找到 ​mogu-search-prod.yml

nacos地址:http://ip:8848/nacos

蘑菇博客新版本更新啦~_搜索_13修改nacos配置

将里面的 ​ip​ 替换成自己的就OK啦

data:
elasticsearch:
cluster-name: elasticsearch
cluster-nodes: 38.84.74.140:9300
elasticsearch:
rest:
uris: ["http://38.84.74.140:9200"]

修改完成后,回到服务器中,执行下面命令,启动 ​mogu-search

docker-compose -f yaml/search.yml up -d

启动完成后,就可以在后台进行初始化 ​ElasticSearch​ 索引了,到 ​监控中心​ -> ​ElasticSearch​,点击初始化 ​ES​ 索引,系统将会对我们所有的文章建立索引,以便后续进行分词检索。

蘑菇博客新版本更新啦~_elasticsearch_14初始化索引

最后到门户页面,输入关键字 ​java​ 进行搜索,若地址栏中包含了 ​model=1​,表示已经开启了 ​ES​ 搜索,并且能搜索到内容,说明已经成功完成搭建。

蘑菇博客新版本更新啦~_搜索_15开始搜索

若 ​model=0​ 或者没有 ​model​ 字段,那么需要到系统配置处,看开关是否勾选到了 ​ES​ 搜索,若还存在问题,记得清空 ​redis​ 缓存后在试试。

蘑菇博客新版本更新啦~_elasticsearch_10切换搜索模式

评论支持Markdown

最近发现有有一些小伙伴会在留言区贴一些错误代码,为了方便小伙伴同时增加代码的可读性,目前支持 ​markdown​ 进行评论啦。

蘑菇博客新版本更新啦~_elasticsearch_17评论支持markdown

好啦,本次蘑菇版本更新就到这里啦。我是陌溪,我们下期再见~