

# 建立定期研究流程前，先测试搜索运算符

用一小组已知相关和不相关的页面检查搜索查询。每次只修改查询的一处。检查返回的页面，记录哪些检查已通过、哪些仍然未知，并保存完整的查询设置。先手动检查公开页面。如果需要保存结果记录，再进行小规模采集。某个已知页面未出现，并不能证明查询有误，也不能证明 Google 未将该页面编入索引。

一位研究者公开询问，Google 搜索运算符是否有时会失效。这个问题提示了一个有用的起点：将语法检查与相关性检查分开。语法是指查询必须遵循的格式。相关性是指页面是否回答了你的研究问题。仅凭一个意外结果，无法确定发生了哪种问题。[公开的运算符提问 — 观察于2026年10月25日；发布日期未知，单篇帖子不能证明需求或运算符的表现](https://www.reddit.com/r/searchengines/comments/1reqs02/google_search_operators_are_sometimes_not_working/)

下面的方法会形成两份记录。第一份是查询测试表，其中包含参考页和明确的测试状态。第二份是已采用的查询集，即你选定用于重复研究的一小组完整查询。本指南未使用 Actor 进行采集。所提供的产品核查仅涵盖文档中列出的字段和输入格式。

## 1. 编写查询前，先明确要作出的决策

用一句话说明搜索必须帮助你作出什么决策。写明所需的页面类型，以及要排除的页面。

例如，你的决策可能需要解释某项指定功能的公开文档页面。仅在销售介绍中提及该功能的页面，可能无法满足这一需求。在检查搜索结果之前，先确定这一标准。

按以下步骤操作：

1. 写明研究问题。
2. 写明所需的页面类型。
3. 写明所需的主题或短语。
4. 写明对网站或文档格式的要求。
5. 明确什么样的返回页面有用。
6. 明确什么样的返回页面不适用。
7. 写明缺少哪些证据会导致无法作出决策。

明确搜索范围。公开搜索可以显示候选的公开页面，但不能让你访问私人账户记录，也不能提供某个网站全部页面的完整清单。如果问题涉及你自己账户中的记录，请通过该账户检查这些记录。不要以公开搜索中未出现某项内容为依据，判断私人记录的情况。

本指南检查查询行为及其与研究需求的匹配程度。保存搜索样本是另一个问题，可参阅[有数量限制的 Google 搜索导出指南](/zh-Hans/articles/google-%E6%90%9C%E7%B4%A2%E7%BB%93%E6%9E%9C%E9%99%90%E9%87%8F%E5%AF%BC%E5%87%BA/)。导出数量无法证明查询是否找到了你需要的页面类型。

## 2. 选择正例和反例参考页

参考页是你在测试前检查过的页面。正例参考页符合你的纳入规则。反例参考页不符合该规则。

这些页面用作对照。对照是用于帮助解释测试结果的已知示例。选择一小组能够手动检查的页面。

1. 打开每个拟选的正例页面。
2. 确认页面包含你需要的信息。
3. 保存页面的完整网址及其符合规则的原因。
4. 打开每个拟选的反例页面。
5. 记录页面不符合规则的原因。
6. 保存检查日期。
7. 检查查询结果前，先明确参考页集合。

反例页面应代表研究中确实可能遇到的干扰。例如，不相关网站上的页面可能使用了相同短语。这样可以帮助你检查网站限制是否符合研究目的。

将页面身份与页面相关性分开判断。仅凭标题，可能无法确定它是否就是目标页面。必要时，检查返回的网址和目标页面。如果无法确认页面身份，就记录为未知。

不要用一个恰好返回的页面替换未出现的正例参考页，然后将原测试判定为通过。你可以稍后添加新的参考页。为修改后的参考页集合设置新版本，并说明改动。

## 3. 核对 Google 文档中的运算符行为

搜索运算符是要求搜索引擎施加限制的查询文本。Google 文档介绍了引号、`site:`、减号排除、`before:`、`after:` 和 `filetype:`。请查阅你打算使用的搜索引擎的文档。不要假定其他引擎使用相同的语法或具有相同的行为。[Google 搜索指南 — 获取于2026年10月25日；介绍预期的运算符行为，并非本指南的测试结果](https://support.google.com/websearch/answer/2466433)

| 查询要素 | 预期用途 | 检查内容 |
| --- | --- | --- |
| 引号 | 搜索完全匹配的短语 | 该短语是否符合研究需求 |
| `site:` | 将搜索限制在指定网站内 | 返回的网址是否符合指定的网站范围 |
| 减号排除 | 排除指定词语 | 有用的页面中是否也包含该词语 |
| `filetype:` | 指定文档类型 | 该格式是否有助于作出决策 |
| `before:` 和 `after:` | 按文档更新日期限制搜索 | 更新日期是否能回答你的问题 |

不要在运算符与其值之间添加空格。例如，`site:docs.example.com` 必须连写。Google 指南说明，符号或运算符词必须与搜索词相连。[Google 语法指南 — 获取于2026年10月25日；语法规则不保证返回某个特定页面](https://support.google.com/websearch/answer/2466433)

只有在文档更新日期与研究有关时，才使用日期运算符。不要将其结果描述为一组已核实原始发布日期的页面。

正例对照有一个重要限制：Google 明确说明，`site:` 结果并不完整。已编入索引的网址不一定会出现在 `site:` 查询中。因此，正例页面未出现时，无法对该纳入检查得出结论。这不能证明页面未被编入索引。[Google 搜索中心指南 — 获取于2026年10月25日；`site:` 结果并不完整，也不代表完整的索引数量](https://developers.google.com/search/docs/monitor-debug/search-operators/all-search-site)

## 4. 编写查询变体，每次只改一处

查询变体是搜索文本的一个版本。在可比较的变体之间，每次只修改一个要素。这样更容易调查意外结果的原因。

可以按以下顺序操作：

1. 从一个普通短语开始。
2. 为该短语添加网站限制。
3. 保留网站限制，并在短语两侧添加引号。
4. 只有在研究决策需要时，才添加其他运算符。

保存每条查询的完整文本。仅记录“网站测试”之类的备注，不足以重复该搜索。

比较期间，保持搜索引擎、国家、语言、结果上限和其他设置一致。记录无法确认的设置。如果修改了某项设置，就将下一次采集视为已变更的测试。

结果上限是每条已执行查询请求的最大结果数。已执行查询是采集结果所附带的搜索文本。较小的上限便于逐条检查返回记录，但也会限制你对未出现页面所能作出的判断。

完全匹配的短语有助于明确较窄的需求，但也可能排除其他有用的表达。如果需要第二种短语，请将其作为单独的查询进行测试。[Reddit 关键词测试指南](/zh-Hans/articles/%E5%B0%91%E5%99%AA%E5%A3%B0%E7%9A%84reddit%E5%85%B3%E9%94%AE%E8%AF%8D%E8%BF%BD%E8%B8%AA/)解释了为什么有用的措辞调整仍可能遗漏另一类问题。其中的 Reddit 结果不能验证 Google 运算符。

## 5. 进行小规模手动检查，或拟定 Actor 采集方案

对于少量查询变体，先手动搜索，并检查返回的公开页面。保存查询、能够确认的设置、检查时间和各页面的备注。这样可以直接回答一个范围较小的查询设计问题。

如果需要保存结果行，Chronometrica Google Search Scraper 文档列出的字段适用于这一方法。Actor 是一种托管的数据采集程序。它提供搜索记录；你仍需判断相关性、检查参考页是否匹配，并选择要采用的查询。

提供的小规模输入示例如下：

```json
{"country":"US","engines":["google"],"language":"en","maxResultsPerExecutedQuery":3,"queries":["site:developers.google.com \"site:\""]}
```

5. 进行小规模手动检查，或拟定 Actor 采集方案

JSON 是一种用于表示命名值和列表的文本格式。此输入指定使用 Google、美国和英语设置，并将该查询的结果上限设为三条。该查询在指定的 Google 文档网站中搜索短语 `site:`。这只是一个入门示例，不能证明某个特定文档页面会出现。

按以下顺序替换示例值：

1. 将 `queries` 中的查询替换为你预先确定的第一个变体。
2. 在此次 Google 测试中，将 `engines` 保持为 `["google"]`。
3. 根据预期研究用途，保留或替换 `country` 和 `language`。
4. 开始时，将 `maxResultsPerExecutedQuery` 设为 3。
5. 采集前，保存完整输入。
6. 使用相同设置测试其他变体。

已核查的结果上限范围为 1 至 100。提供的输入通过了静态模式检查。模式是一组规定数据字段和值的规则。静态检查会检查输入，但不运行采集。它不能证明实际结果、完整覆盖或运行成功。[公开默认构建版本 1.0.15 — 核查于2026年10月25日；已检查输入输出规范，未进行实际采集](https://api.apify.com/v2/acts/mlmVX4amk2biciJaB/builds/default)

Task 是为 Actor 保存的输入预设。公开的 Multi-Engine Search Results Scraper Task 可用作起点。其页面和准确的 Task ID 已经过核查，但当前保存的设置尚未核实。使用前，请检查并替换这些设置；不要假定它们与本示例一致。[Multi-Engine Search Results Scraper Task — 核查于2026年10月25日；已确认页面存在，保存的输入和实际运行情况尚未核实](https://apify.com/chronometrica/google-search-scraper/examples/multi-engine-search-results-scraper)

## 6. 保存来源字段和自己的测试决策

将原始结果记录与审核备注分开保存。已核查的产品输入输出规范为本方法列出了以下字段：

| 来源字段 | 保留内容 |
| --- | --- |
| `engine` | 结果附带的搜索引擎 |
| `executedQuery` | 实际执行的完整查询 |
| `canonicalUrl` | 返回结果的网址 |
| `resultDomain` | 返回结果的域名 |
| `title` | 返回的标题 |
| `snippet` | 返回的文本，包括来源提供的 null 值 |
| `rank` | 在所有已获取页面中，解析出的受支持结果区块的连续序号 |
| `isSponsored` | 返回的赞助结果标记 |
| `observedAt` | 记录的观察时间 |

这些是文档中列出的字段，并非本指南实际运行后观察到的输出。[公开默认构建版本 1.0.15 — 核查于2026年10月25日；仅涉及声明的结果字段，未验证实际运行输出](https://api.apify.com/v2/acts/mlmVX4amk2biciJaB/builds/default)

赞助结果是付费结果。审核相关性时，请保留其标记。将来源中的 `rank` 保留为记录的排序位置，不要将其用作相关性评分。[Bing 排名快照指南](/zh-Hans/articles/%E5%BF%85%E5%BA%94%E5%85%B3%E9%94%AE%E8%AF%8D%E6%8E%92%E5%90%8D%E5%BF%AB%E7%85%A7%E5%AF%B9%E6%AF%94/)介绍的是另一项排名比较任务。本次 Google 对照测试不衡量排名稳定性。

在自己的表格中添加以下审核字段：

| 审核字段 | 记录内容 |
| --- | --- |
| 测试版本和目的 | 预先明确的决策和参考页集合版本 |
| 查询变体 | 完整查询及本次唯一的改动 |
| 设置和上限 | 搜索引擎、国家、语言、结果上限及其他已知设置 |
| 参考页 | 正例和反例的网址及选择原因 |
| 采集证据 | 保存的输入、实际返回的结果行、已知的采集状态和时间 |
| 参考页检查结果 | 已找到、样本中未出现，或页面身份未确认 |
| 相关性 | 相关、不相关或未知，并说明原因 |
| 测试状态 | 每个预先明确的检查项是通过、未通过还是未知 |
| 下一步决策 | 采用、修改、调查或暂缓采用 |

如果缺少时间，就保留为未知。你可以在单独的字段中添加自己的检查时间。不要将其填入 `observedAt`，使其看起来像来源提供的时间。

`snippet` 为 null 表示缺少文本，不能证明目标页面为空。缺失的结果数量应记为未知。只有证据表明所定义的采集保存了零行结果时，才记录为零。

## 7. 使用明确的通过、未通过和未知规则

将正例页面检查与限制条件检查分开。

| 检查项 | 样本内通过 | 样本内未通过 | 未知或无法得出结论 |
| --- | --- | --- | --- |
| 正例参考页 | 已确认是预先指定的页面 | 不要仅凭页面未出现就推断未通过 | 页面未出现，或页面身份不明 |
| 网站限制 | 所有已检查的结果网址都符合预先指定的网站范围 | 某个已检查的目标页面位于该范围之外 | 无法确认目标页面身份 |
| 与研究的相关性 | 已检查的页面符合纳入规则 | 已检查的页面不符合规则 | 无法获取所需的页面证据 |
| 采集结果是否具备审核条件 | 现有证据足以支持审核已保存的样本 | 采集证据显示发生失败 | 采集状态或必要记录不明确 |

网站限制检查通过，表示已检查的样本符合规则。这不能证明今后的每个结果都会符合规则。

如果出现不相关的域名，先检查返回的网址和目标页面，再判断语法是否有问题。如果采集失败，请将该失败与观察到零条结果的情况分开记录。如果已知页面未出现，请保留原始测试及其无法得出结论的状态。

不要根据一个未出现的参考页计算 Google 的假阴性率。假阴性是指在明确的衡量标准下，某个相关项目被错误排除。这种小规模参考页检查无法确定 Google 中全部相关页面的总体。

## 8. 完整示例：无法得出结论的变体仍应保留该状态

原创虚构示例。本例中的每个页面、查询结果、数量和决策均为教学而虚构。这不是 Actor 的实际运行记录、客户结果，也不是观察到的公司研究发现。

一位研究者需要关于访问设置的公开文档。他们预先指定了两个参考页：

- 正例：`https://docs.example.com/guide`，一个已检查的访问设置文档页面。
- 反例：`https://other.example.com/guide`，一个使用相同短语但与研究无关的页面。

他们编写了三个变体。每一步只修改一个要素：

| 变体 | 完整查询 | 改动 |
| --- | --- | --- |
| Q1 | `access setup guide` | 普通短语 |
| Q2 | `site:docs.example.com access setup guide` | 添加网站限制 |
| Q3 | `site:docs.example.com "access setup guide"` | 为短语添加引号 |

这三次虚构采集均使用 Google、美国和英语设置，每条查询的上限为三条观察记录。一条观察记录就是一条已保存的结果记录。

| 变体 | 已保存的观察记录数 | 参考页检查结果 | 审核决策 |
| --- | --- | --- | --- |
| Q1 | 3 | 正例和反例均出现 | 宽泛短语包含了一个不适用的页面 |
| Q2 | 2 | 两个参考页均未出现；两个返回的网址都符合网站范围 | 网站检查在此样本内通过；正例检查无法得出结论 |
| Q3 | 1 | 正例出现；反例未出现 | 正例检查通过；网站检查在此样本内通过 |

在这些虚构的相关性标签中，Q1 有一条相关、一条不相关和一条未知的观察记录。Q2 有一条相关和一条未知的观察记录。Q3 有一条相关的观察记录。

计算如下：

- 请求额度：3 条查询 × 每条查询 3 条观察记录 = 9 条观察记录。
- 已保存记录：3 + 2 + 1 = 6 条观察记录。
- 相关记录：1 + 1 + 1 = 3 条观察记录。
- 不相关记录：1 + 0 + 0 = 1 条观察记录。
- 未知记录：1 + 1 + 0 = 2 条观察记录。
- 标签核对：3 + 1 + 2 = 6 条观察记录。
- 未使用额度：9 − 6 = 3 条观察记录。

这三个未使用的观察记录名额，不代表三个已知缺失的页面。这六条记录是结果观察记录，不是六个人，也不一定对应六个不同页面。同一个正例页面同时出现在 Q1 和 Q3 中。

在这个虚构样本中，研究者采用 Q3 来完成范围较窄的精确短语任务。对于正例参考页，Q2 仍保留为无法得出结论。Q3 不能弥补 Q2 未返回该结果的情况。这一选择不能证明 Q3 普遍更优或结果完整。

## 选择下一组查询

只有当每条查询都能满足明确的需求时，才采用该查询集。将查询的完整原文、设置、参考页、原始记录、审核标签和待解决的检查项保存在一起。如果证据缺失导致无法作出研究决策，就暂缓采用该查询。

下次需要进行小规模测试并保存结果时，可使用 [Chronometrica Google Search Scraper — 输入输出规范已于2026年10月25日核查；本指南未进行实际采集](https://apify.com/chronometrica/google-search-scraper)。替换示例查询，保留较小的结果上限，并检查每条返回记录。文档中列出的字段可以辅助审核，但不会替你执行或批准审核。

当观察到的行为发生变化时，重新审核查询集。将新旧测试保存在一起。保留之前的未知状态，使其仍然可见。只有当小规模测试支持你已明确的研究用途时，才扩大重复采集的规模。

## 来源和延伸阅读

- [Google：优化 Google 搜索 — 获取于2026年10月25日；介绍预期的语法和运算符行为，并非实际测试](https://support.google.com/websearch/answer/2466433)
- [Google 搜索中心：site: 搜索运算符 — 获取于2026年10月25日；结果并不完整，不能证明索引完整性](https://developers.google.com/search/docs/monitor-debug/search-operators/all-search-site)
- [Chronometrica Google Search Scraper — 输入输出规范已于2026年10月25日核查；文档显示产品适用于该方法，未进行实际采集，也不作覆盖范围声明](https://apify.com/chronometrica/google-search-scraper)
- [公开默认构建版本 1.0.15 — 核查于2026年10月25日；涉及静态输入验证和声明的输出字段，未验证实际运行情况](https://api.apify.com/v2/acts/mlmVX4amk2biciJaB/builds/default)
- [Multi-Engine Search Results Scraper Task — 核查于2026年10月25日；已核实公开页面和准确的 Task ID，当前保存的设置尚未核实](https://apify.com/chronometrica/google-search-scraper/examples/multi-engine-search-results-scraper)
- [公开的 Google 运算符提问 — 观察于2026年10月25日；发布日期未知，仅作为提问措辞的证据](https://www.reddit.com/r/searchengines/comments/1reqs02/google_search_operators_are_sometimes_not_working/)