Hugo Static Site Search: Fuse.js 与 Pagefind

背景 本站使用 Hugo + PaperMod,通过 Containerfile 构建为 Nginx 静态站点镜像。文章约 2800+ 篇(Pagefind 实测索引 2779 页)。本文记录站内搜索方案调研与当前 Pagefind 接入方式。 PaperMod 内置搜索(Fuse.js,已弃用) PaperMod 主题自带基于 Fuse.js 的客户端搜索:Hugo 构建时生成 index.json,搜索页在浏览器里加载全文索引并做模糊匹配。零后端依赖,但本站实测 index.json 约 13MB,需一次下载全部正文,首访慢,中文分词也一般。现已移除 Fuse 相关配置,改用 Pagefind。 Hugo 静态站搜索方案对比 方案 原理 适合规模 优点 缺点 PaperMod Fuse.js 浏览器加载完整 JSON 小站(约 500 篇以内) 零配置、纯静态 大站索引体积大、首访慢;中文分词弱 Pagefind 构建时生成索引,搜索时按查询加载分片 中大型站 首访不必下完全部正文;extended 支持 CJK 需加构建步骤;索引目录总体积未必更小 Lunr.js 类似 Fuse,浏览器建倒排索引 小中型 多主题支持 与 Fuse 同类局限 Algolia DocSearch 构建时推送到 Algolia 云端 文档站 / 开源项目 搜索体验好 需申请、依赖第三方 Meilisearch / Typesense 自托管搜索引擎 大型站 功能强 需跑服务,个人博客偏重 本站实现:Pagefind 采用 Pagefind extended(v1.5.2,支持中文分词)。搜索 UI 使用 Default UI(pagefind-ui.js / PagefindUI),不是 1.5 新推荐的 Component UI。 ...

Created 24246-06-24 · Updated 24246-06-24 · 2 min · 279 words · -