docs: D6 [SH]/[MAJR] 标注为已知限制L6(依赖MeSH抽取质量),移除已修复的L1(混合布尔)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s

This commit is contained in:
34047007@qq.com
2026-07-27 15:19:39 +08:00
parent fe7461e81a
commit 91748bf668
+6 -6
View File
@@ -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` 回归不可见 | 需字段级测试 | 低 |
---