Hugo静态博客搜索功能开发-上集
文章目录
介绍
随着博客的文章数量的增加,发现查找一些文章十分的不方便,虽然静态博客的内容都可以在本地用就可以搜索到,但是静态博客也是一个小网站,所以应该要自带一个搜索的功能,hugo官方也推荐了几个好用的搜索工具,工具传送门 但是总是感觉不是自己想要的,因为使用了静态的博客,那么服务器一定是非常的廉价,所以技术选型上需要非常的苛刻,又要可以在廉价机器上跑,又要性能好。大家如果想要体验的话,可以在本网站的导航中点击搜索页面,然后搜索一些关键字看看效果吧。体验地址: https://www.7benshu.com/search/
如果你有丰富的机器资源,那就不要折腾了这个搜索功能了,可以上一些高大尚的技术。
机器配置:
系统: CentOS7.5 64位
硬件: 2 vCPU 512MB
这次内容主要分为了上中下来说介绍
上集:介绍使用的技术和程序设计内容
中集:具体的部署过程和踩过的坑 https://www.7benshu.com/post/2020/08/06-1/
下集:开源此内容的所有代码以及发布 https://www.7benshu.com/post/2020/08/06-2/
内容
给自己的博客增加一个搜索的功能,不过这次需要自己动手来做,此次使用的一些技术会相对新和冷门点,首先介绍下自己的hugo的部署情况,通过hugo编译成静态的代码,然后通过nginx来托管页面。
下面介绍下本次的搜索功能技术以及设计思路
解释:
Sonic 》快速,轻便且无架构的搜索后端。在几MB RAM上运行的Elasticsearch的替代方案,用来构建本次搜索功能的底层服务,可以做到关键的语句自动分词等等功能。可以快速的搜索内容
Search 》gin的web框架,是一个golang语言写的框架,可以低成本的提供出sonic的搜索能力。
Github》博客项目的托管地方
SSH 》自己的本地电脑,通过写的脚本来控制hugo的编译和github的上传以及索引的创建。
SearchIndex 》golang写的创建索引的程序,通过对博客内容的提取,写入到sonic中。设计图中会看见有两个线操作这个程序,如果自己的机器配置高,可以直接放在服务器上跑,如果机器配置低,尤其是内存小的,可以在本地跑这个程序,本博客的流程是本地电脑跑的索引创建,因为自己的服务器内存太小了。
用户就可以在搜索的界面上,输入关键字,来快速的浏览搜索结果,并且可以点击内容浏览
总结
还是很有意思的经历,其中踩了很多的坑,都是因为我的廉价机器带来的,现实就是这个配置,就是要有这个功能,那么只有寻求更加适合的技术和设计,本来弄了几天的rust的语言,发现快速入门的曲线太陡峭了,因为sonic的开发语言是rust的,所以开始还是尝试了几天的。
不过后来由于不太想花太多的时间搞这个搜索的功能,所以立马就选择了go语言,现在看还是很满意的,毕竟不是简单的访问sonic就好了,还需要提供一个稳定高效的服务,并且一定要简单。
后面看中集内容,会放出很多的坑和一些感悟,包括一些实际操作的流程和介绍。
文章作者 拉斐
永久链接 https://www.7benshu.com/post/2020/08/05-1/
版权声明
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
上次更新 2020-08-06
7本书-公众号