# ch14 三个候选扩展的 ADR 摘要

## ADR-14-A：有界单字段容错检索

**结论：接受 `pg_trgm`，但只接受明确的查询边界。**

- 问题：用户可能把 “extension” 输成 “extenson”，需要在一个受控标题列上
  返回相近结果；
- 原生替代：精确/前缀 B-tree、PostgreSQL 全文检索、应用侧纠错；
- 成功证据：固定 fixture 前三项为 `1,5,2`，GIN 计划可用，1.3 → 1.6
  后结果不变；
- 风险：短字符串、不同语言、阈值和高频更新可能改变选择性与索引成本；
- 退出：删除 GIN 索引，把查询改回精确、前缀或全文检索，不产生自定义列类型；
- 复审：语料语言、查询形态、数据量或 PostgreSQL 大版本变化。

## ADR-14-B：语义近邻检索

**结论：`vector` 只进入限域试点，不进入通用基线。**

- 问题：对一个已知 embedding 模型的三维教学向量执行 L2 近邻检索；
- 成功证据：固定 fixture 前三项为 `1,2,5`，HNSW 计划可用；
- 尚缺证据：真实模型身份与版本、生产维度、召回质量、过滤组合、构建时间、
  内存、WAL、备库延迟和洁净恢复；
- 风险：自定义列类型形成恢复前置条件，ANN 参数和模型变更可能使旧基线失效；
- 退出：先把 `embedding::text` 导出并验证行数/校验和，再迁移查询、删除 ANN
  索引和自定义列，最后删除扩展；
- 复审：模型、维度、距离度量、数据集或扩展版本变化。

## ADR-14-C：分布式分片

**结论：当前拒绝引入 `citus`。**

- 问题证据：当前没有单节点容量、写入吞吐或维护窗口已越界的测量；
- 欠缺合同：没有稳定分片键、跨分片事务边界、重平衡预算和故障模型；
- 当前替代：先使用正确索引、分区、归档、垂直扩容和容量治理；
- 重新打开条件：经第 17 章容量实验确认单集群上限，并完成分片键与应用事务
  评审；
- 说明：这一结论否定“现在引入”的时机，不评价 Citus 产品质量。Pigsty
  扩展目录中存在 Citus，也不自动改变问题适配结论。
