于我来说,Hexo 的
本站搜索
是绝对的刚需功能,但默认的搜索构建方式比较慢,本文记录提速的思路。
背景
- 有国内备案域名、还觉得搜索加载慢的的同学不要看这篇博客,去做博客的 CDN 加速就好了
- 对于没有备案域名,服务器在国外(
vercel
github
等),且加载数据不那么快的情形下,需要做搜索的加速
加载缓慢的原因
- 搜索插件需要加载 数据极小,基本不占用时间
- 加载索引文件
search.xml
或local_search.xml
加速方案
减少索引内容
- 可以设置搜索内容,若仅搜索标题 (搜索内容设置为false) 则会加载快到飞起
提速加载索引文件速度
对博客内容建立索引是必要的,我不会妥协
实现上的问题
- 将该文件转为 cdn 文件后确实可以起到加速的作用,但如果图床不是 github 的话需要在每次更新博客后精心维护这个
local_search.xml
文件 - 我的实践思路是,用脚本实现下列功能:
- 更新博客
- 重新生成博客 public 文件夹
- 将
public/local_search.xml
文件拷贝到仓库子模块并上传 - Nginx 图床定期拉取
local_search
文件,并提供链接用于加速文件加载
不得不承认,有些过于复杂,提供一个思路供大家参考
参考资料
- https://yunist.cn/hexo/local_search_speed_up/
- https://www.voidking.com/dev-hexo-local-search-accelerate/