Pagefind 是什么

Pagefind 是一个面向静态网站的全文搜索工具。它不要求你维护搜索服务器,也不要求在构建 Markdown 时生成索引,而是在站点 HTML 已经输出之后再运行。

典型流程如下:

text
Markdown / CMS / 数据源
        ↓
静态站点生成器输出 HTML
        ↓
Pagefind 扫描输出目录并生成 /pagefind/
        ↓
浏览器加载搜索包并完成查询

Pagefind 的核心价值是把搜索功能变成静态资产的一部分。只要你的托管平台能分发 HTML、CSS、JavaScript 和二进制索引文件,就可以运行搜索。

它解决的问题

很多静态站点一开始会使用浏览器内置搜索、第三方托管搜索或自己写 JSON 索引。页面数量变多后,这些方案会遇到几个问题:

  • 全量 JSON 太大,首屏加载变慢。
  • 自写分词和排名容易变得粗糙。
  • 第三方搜索需要额外服务、爬虫或密钥。
  • 构建系统里手写索引逻辑会越来越难维护。

Pagefind 会把索引拆成按需加载的静态文件,搜索时只加载必要的数据。结果详情也通过每条结果的 data() 方法按需取回,适合文档类站点的交互模式。

适用边界

Pagefind 适合:

  • 页面主要由静态 HTML 组成。
  • 搜索目标是站内文档、教程、博客或帮助中心。
  • 构建流程可以在部署前运行一个额外命令。
  • 搜索结果不需要按用户权限实时变化。

Pagefind 不适合:

  • 需要搜索用户私有数据。
  • 搜索索引必须实时反映数据库变化。
  • 需要复杂业务排序、拼写纠错、同义词系统或向量召回。
  • 站点内容主要由登录后的客户端接口动态渲染。

如果你的网站是公开内容站,Pagefind 通常是一个轻量、稳定、上线成本低的选择。