# 中文搜索配置

URL: https://caijiao.org/pagefind/tutorial-07-chinese-search
Source: docs/pagefind/tutorial-07-chinese-search.md
Description: 讲解 Pagefind 在中文站点中的语言识别、extended 版本、force language、中文分词特点和技术文档搜索建议。

中文内容没有天然空格分词，搜索工具需要额外处理。Pagefind 的扩展版本包含针对中文、日文等语言的专门支持。

## 设置 html lang

Pagefind 会读取页面 `<html>` 上的 `lang` 属性，并根据语言建立对应索引：

```html
<html lang="zh-CN">
```

对于中文站点，建议始终设置 `lang="zh-CN"` 或更具体的中文语言标签。这不仅有利于 Pagefind，也有利于浏览器、屏幕阅读器和 SEO。

## 使用 extended 版本

通过 `npx pagefind` 运行时会使用扩展版本，包含中文与日文索引支持。Python 方式应安装：

```bash
python3 -m pip install 'pagefind[extended]'
```

下载二进制文件时，应选择：

```bash
./pagefind_extended --site public
```

## 强制单一语言索引

如果站点内容基本都是中文，可以使用：

```bash
pagefind --site dist --force-language zh
```

这样会忽略页面上检测到的语言，为整个站点创建一个中文索引。对于中文教程站、中文博客和统一语言的文档站，这通常能减少“页面 lang 不一致导致搜索范围被切开”的问题。

## 中文查询特点

Pagefind 对中文这类特殊语言会做分词处理。用户搜索连续中文词组时，查询会被切成可匹配的词；用户也可以用空格分隔多个词来扩大匹配。

例如搜索：

```text
静态网站搜索
```

通常可以匹配同时包含相关中文分词的页面。对于精确短语，用户可以尝试带引号的查询，但中文技术词汇仍应通过标题、摘要和元数据辅助命中。

## 技术文档建议

中文技术文档常混合英文标识符、符号和命令。建议：

- 标题里保留官方英文名，例如 `Pagefind`、`data-pagefind-body`。
- 正文第一次出现缩写时写出中文解释。
- 对重要命令、配置项和属性使用代码格式。
- 必要时通过 `include_characters` 保留 `<`、`>`、`$`、`+` 等符号。
- 用元数据补充同义词，例如把“站内搜索”“全文搜索”“静态搜索”写入描述字段。
