diff --git a/docs/13-搜索修复全记录.md b/docs/13-搜索修复全记录.md index ae13dee..cce571e 100644 --- a/docs/13-搜索修复全记录.md +++ b/docs/13-搜索修复全记录.md @@ -2,7 +2,7 @@ > 本文档按修复轮次详细记录所有搜索功能合规性修复的背景、根因分析和修改内容。 > -> **累计**:7 轮,98 项修复,50+ 字段标签注册,276 项测试覆盖,8 项已知限制 +> **累计**:7 轮,98 项修复,50+ 字段标签注册,276 项测试覆盖,7 项已知限制 > **时间跨度**:2026-07-24 ~ 2026-07-27 > **核心文件**:`pubmed_query_parser.py`(~730 行)→ `search_engine.py`(~1320 行) @@ -644,18 +644,18 @@ ## 遗留限制 -截至 2026-07-27,剩余 8 项已知限制: +截至 2026-07-27,剩余 7 项已知限制: | ID | 问题 | 原因 | 影响 | |----|------|------|------| -| L1 | 混合 AND/OR 优先级(`A OR B AND C`) | 需 AST 重构,当前扁平列表无法保留嵌套结构 | 低(混合布尔极罕见) | | L2 | Affiliation JSONB cast 假阳性 | 需独立 affiliation 列 + Alembic 迁移 + 重新填充 | 低 | | L3 | retracted "yes"="only" | 命名语义,SQL 条件相同 | 无影响 | | L4 | OR-mode NOT 检测不可靠 | `UnaryExpression + _sa_ops.inv` 不可靠用于复合 NOT | 低 | -| L6 | 字段标签 REF/ISBN 未注册 | 低使用频率或数据缺失 | 低 | -| L7 | GIN 索引缺失(基因/chemicals 等) | 需 DBA 操作,生产数据量大 | 中(大表性能) | -| L8 | `_dispatch_term` 回归不可见 | 需字段级测试 | 低 | | L5 | 历史引用 `#N` 仅前端支持 | `#N` 是 localStorage UX 功能,仅在高级搜索前端内联展开 `resolveQuery()` 后发送到 API。后端无 `#` token 类型。API 直传 `#1` 被当普通文本。属于设计决策,非 bug | 无影响(前端已覆盖所有 user 路径) | +| L6 | `[SH]`/`[MAJR]` 依赖 MeSH 抽取质量 | 引擎逻辑正确(`mesh_headings JSONB contains qualifiers` / `global_literature_tag.is_major=True`),但结果完整性取决于 pipeline 的 XML 抽取是否漏标。2026-07-27 审计抽检 981 篇:漏标率 0.1%、误标率 0.0%。脚本见 `scripts/audit_mesh_major.py` | 低(当前数据质量良好) | +| L7 | 字段标签 REF/ISBN 未注册 | 低使用频率或数据缺失 | 低 | +| L8 | GIN 索引缺失(基因/chemicals 等) | 需 DBA 操作,生产数据量大 | 中(大表性能) | +| L9 | `_dispatch_term` 回归不可见 | 需字段级测试 | 低 | ---