# 搜索

> 用版本前缀和筛选条件把搜索限定到某个版本、语言或资料类型，查技术符号和中文词语，并在没有结果时调整范围。

---

LLMS 索引： [llms.txt](/llms.txt)

---

![搜索 work_mem 的结果：中间结果栏列出 14 条 PG 18.6 中文手册结果，每条标注版本、语言、资料类型和“精确”，底部是 Google 与 Stack Overflow 网页搜索；右侧阅读区是 PostgreSQL 18.6 中文手册](/img/shots/search-dark.webp)
{width="1600" height="998" caption="搜索 work_mem（2026-11-06 开发构建，深色外观）"}

## 搜索框 {#search-box}

按 ⌘ + L 聚焦工具栏中的搜索框，⌘ + K 是备用快捷键。结果随输入更新。

| 按键 | 作用 |
| --- | --- |
| ↑ ↓ | 选择结果 |
| ↩ | 打开选中的结果；结果还没出来时，出来后打开第一条 |
| ⌘ + ↩ | 在新标签页打开 |
| Esc | 回到正文，查询保留 |

在结果上点右键可以“在新标签页打开”或“复制链接”。搜索框为空、或查询里只有筛选条件时，中间一栏显示当前范围的“目录”，而不是搜索结果。

## 搜索范围 {#scope}

工具栏下方的范围栏决定默认在哪里搜：

- **搜索方案**：保存的范围，见[搜索方案](#profiles)。
- **版本**：例如“PG18 · 18.6”。选“默认版本”回到 PG 18；选“常规版本”搜索全部默认和常规版本。历史版本和开发版不在其中，在阅读区“版本”弹出框中打开“专家模式”后，这一项变为“全部已启用版本”，搜索也包含它们。
- **语言**：中文、English 或全部语言。
- **资料类别**：由左侧栏决定。“手册”只搜手册，“全部资料”包括 Wiki，点某个 Wiki 集合则只搜该集合。

新窗口的默认语言和版本在“设置 › 通用 › 默认搜索范围”中修改；设了默认搜索方案时以方案为准。

## 搜索语法 {#syntax}

查询由关键词、版本前缀和筛选条件组成，顺序不限。前缀和筛选只作用于本次查询，并优先于范围栏。它们以“仅本次查询”标签显示在范围栏中，点标签可以单独移除；“清除筛选”移除全部筛选，保留关键词。

### 版本前缀 {#version-prefix}

| 写法 | 含义 |
| --- | --- |
| `pg18:` | PG 18。大小写不限，`PG18:` 相同 |
| `pg96:`、`pg9.6:` | PG 9.6。10 以前的版本可以省略点号 |
| `pg@18.6:` | 指定内容版本 18.6；本机装的不是这个小版本时提示未安装，不用其他小版本代替 |
| `pg:` | 默认版本，目前是 PG 18 |
| `pgdevel:` | 开发版，目前是 20devel |

前缀后面可以不加空格，`pg18:vacuum` 等于 `pg18: vacuum`。

### 筛选条件 {#filters}

| 筛选 | 取值 | 作用 |
| --- | --- | --- |
| `lang:` | `en`、`zh-Hans` | 只搜这种语言的正文 |
| `branch:` | 版本号，如 `18`、`9.6` | 只搜这个版本；与版本前缀同时写时必须一致 |
| `domain:` | `manual`、`wiki`、`release`、`security`、`capability`、`provenance` | 只搜手册、Wiki、发布、安全、能力或来源资料 |
| `collection:` | Wiki 集合键，如 `guc`、`func`、`sqlstate`、`psql`、`waitevent` | 只搜这个 Wiki 集合 |
| `kind:` | 集合键或 `domain:` 的取值 | 写集合键等于 `collection:`，写资料类型等于 `domain:` |
| `project:` | `postgresql`，可写 `pg` | 目前只有这一个项目 |

> [!TIP] Wiki 集合筛选要离开“手册”
>
> 左侧栏选的是“手册”时，搜索限定在手册内，`collection:guc` 不会有结果。先在侧栏选“全部资料”，或在查询里加 `domain:wiki`；更直接的办法是在侧栏点该集合。

其他规则：

- 同一种筛选写了两个不同的值，或版本前缀与 `branch:` 指向不同版本，搜索会报错，不会替你挑一个。
- 中文输入法打出的全角冒号 `：` 和全角字母、数字可以直接用。
- 不是筛选名的冒号按普通文字处理。粘贴报错时不必删掉 `ERROR:`、`DETAIL:`、`错误：` 的冒号；`x::int`、`localhost:5432` 也原样保留。
- 用英文双引号括起的短语要求在原文中连续出现。
- 查询最多 256 个字符。超过 32 个词时只用前 32 个，结果栏上方会提示。

### 示例 {#examples}

| 查询 | 含义 |
| --- | --- |
| `work_mem` | 找配置参数，名称完全一致的条目排在最前 |
| `PG96: vacuum` | 在 PG 9.6 中搜 vacuum |
| `pg@18.6: max_connections lang:en` | 在 18.6 英文手册中找 max_connections |
| `SELECT branch:18 lang:en` | 在 PG 18 英文资料中找 SELECT |
| `->>`、`@@` | 运算符，标点原样参与匹配 |
| `\d+`、`\dC` | psql 命令，区分大小写，只做精确匹配 |
| `23505` | SQLSTATE 代码，按字符串匹配 |
| `复制延迟`、`事务隔离` | 中文词语，按相邻两字匹配 |
| `锁` | 单个汉字，只匹配标题和名称 |
| `domain:wiki SELECT` | 只在 Wiki 中找 SELECT |

## 匹配规则 {#matching}

结果先按名称匹配，再按标题和正文匹配。大致顺序是：名称、命令或定义完全一致，别名，名称前缀，章节标题，标题相关的章节，最后是正文。每条结果的说明行末尾标出匹配方式：精确、别名、前缀、标题、相关章节、正文或标题/名称；悬停可以看到解释。

- **大小写**：普通英文标识符不区分大小写，`WORK_MEM` 与 `work_mem` 相同。含标点的名称和 psql 命令区分大小写，`\dC` 与 `\dc` 是两个命令。
- **反斜杠**：查询中有以 `\` 开头的词时，只做精确匹配，不退回正文搜索。
- **英文词形**：3 个字母以上的单词同时匹配常见词形，`lock` 也匹配 locks、locked、locking。末尾还没输完的英文词按前缀匹配，例如 `transaction isol`。
- **中文**：连续的汉字按相邻两字切分，“事务隔离”拆成“事务”“务隔”“隔离”，这几组都出现才算命中，不要求相邻。需要连续出现时加英文双引号。
- **单个汉字**：只输入一个字时（如 `锁`），只匹配标题和名称中含这个字的条目，结果标为“标题/名称”。和其他词一起出现的单字按词首近似匹配，结果栏会提示“单个汉字只按标题和词首匹配，输入完整词语更准确”。
- **语言**：英文标识符在中文手册里原样存在，在中文范围内搜 `work_mem` 也能命中中文手册。写了 `lang:en` 就不会返回中文正文。

## 多版本结果 {#version-groups}

搜索多个版本时，同一种语言下的同一个对象合成一组：Wiki 按同一概念，手册按同一章节标识。没有可靠对应关系的同名条目各自单列。

- 结果栏顶部显示“N 组 · M 个版本”。
- 分组标题下有版本摘要，点它或按 → 展开，按 ← 收起。
- 折叠时按 ↩ 打开组内排在最前的一条。组内先列范围栏选定的版本，其余从新到旧。

## 搜索方案 {#profiles}

范围栏最左边的“搜索方案”菜单保存常用范围：版本、语言、资料类别，以及可选的搜索框提示语和触发词。

1. 调好范围栏，在菜单中选“将当前范围存为方案…”。
1. 在“设置 › 搜索”中编辑、停用或删除方案，并可以指定“新窗口默认方案”。
1. 给方案加触发词后，在搜索框输入 `sql:select` 或 `sql select`，这一次就按触发词为 `sql` 的方案搜索 select。删掉触发词即恢复范围栏原来的范围。
{.steps}

每个方案最多 8 个触发词，以英文字母开头，最长 32 个字符；不能使用 `pg` 开头的词和 `lang`、`branch` 等筛选名。方案里的“在结果中显示片段”可以单独关闭片段结果。

## 没有结果时 {#no-results}

结果栏显示“没有结果”和实际搜索的关键词（不含筛选），并给出几个操作，都会保留关键词：

- **清除筛选**：查询中有筛选条件时出现。
- **清除查询**。
- **调整范围 › 搜索全部版本**：从单个版本扩大到全部版本。
- **调整范围 › 仅搜索 PG N**：回到正在阅读的版本和语言。

搜索未安装或已停用的版本（例如在 Core 中写 `pg96:`）时，Crib 会说明该版本未安装或未启用，状态栏出现“查看 PG96”，打开资料库获取或启用。

## 最近搜索 {#recent}

点搜索框左侧的放大镜，菜单中列出最近 12 条查询，选“清除最近搜索”可清空。按 ↩ 或打开某条结果时记录当前查询。

## 片段与个人资料 {#snippets-and-personal}

- 匹配的片段显示在结果最上方的“片段”分组中，见[片段](/docs/guide/snippets/)。在“设置 › 片段”中关闭“在搜索结果中显示片段”即可隐藏。
- 侧栏选中“个人资料”下的分类时，搜索框改为筛选笔记、更正、书签或阅读历史，按标题、正文和标签做字面匹配，不分词。

## 网页搜索 {#web-search}

本地没找到时，结果栏底部的“网页搜索”在默认浏览器中打开外部搜索。默认启用 Google 和 Stack Overflow，DuckDuckGo 默认关闭。发送的只有查询文字，筛选条件会先去掉。

在“设置 › 网页搜索”中可以添加、停用、拖动排序或恢复默认。地址必须以 `https://` 开头，用 `{query}` 标出查询文字的位置。阅读区“更多”菜单中的“在网页中搜索选中文字”使用同一份列表。

---

反链：

- [让符号、中文和版本号一起被搜到](/blog/post/search/)
- [文档](/docs/)
- [安装与首次启动](/docs/guide/install/)
- [片段](/docs/guide/snippets/)
- [工作原理](/docs/intro/architecture/)
