51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Hexo -35- 搜索功能 Local Search 加速

于我来说,Hexo 的 本站搜索 是绝对的刚需功能,但默认的搜索构建方式比较慢,本文记录提速的思路。

背景 {#背景}

  • 有国内备案域名、还觉得搜索加载慢的的同学不要看这篇博客,去做博客的 CDN 加速就好了
  • 对于没有备案域名,服务器在国外(vercel \ github 等),且加载数据不那么快的情形下,需要做搜索的加速

加载缓慢的原因 {#加载缓慢的原因}

  • 搜索插件需要加载

    数据极小,基本不占用时间

  • 加载索引文件 search.xmllocal_search.xml

    • 加载该文件是最耗时的部分,该文件越大加载越慢,博客中文字越多加载越慢

加速方案 {#加速方案}

减少索引内容 {#减少索引内容}

  • 可以设置搜索内容,若仅搜索标题 (搜索内容设置为false) 则会加载快到飞起

提速加载索引文件速度 {#提速加载索引文件速度}

对博客内容建立索引是必要的,我不会妥协

  • 另一个加速思路为对原因的对症下药,既然这个文件加载慢,那就把它放在加载快的地方

    网上有 前辈 将该文件的加载链接替换为 cdn 链接,可以缓解上述问题

  • 修改主题下的 local-search.js 文件 (不同主题的位置会不同, 但是一般都在 source/js 这种文件夹里) , 修改链接:(以我的 fluid 主题为例)

实现上的问题 {#实现上的问题}
  • 将该文件转为 cdn 文件后确实可以起到加速的作用,但如果图床不是 github 的话需要在每次更新博客后精心维护这个 local_search.xml 文件

  • 我的实践思路是,用脚本实现下列功能:

    • 更新博客
    • 重新生成博客 public 文件夹
    • public/local_search.xml 文件拷贝到仓库子模块并上传
    • Nginx 图床定期拉取 local_search 文件,并提供链接用于加速文件加载

    不得不承认,有些过于复杂,提供一个思路供大家参考

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/hexo/website/35-hexo-local-search-speadup/hexo-local-search-speadup/

赞(0)
未经允许不得转载:工具盒子 » Hexo -35- 搜索功能 Local Search 加速