chore: batch commit remaining changes
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s

Includes search engine improvements, Alembic migrations,
new services (pubmed_daily_update, query_expansion),
frontend updates, and documentation sync.
This commit is contained in:
34047007@qq.com
2026-07-27 08:35:12 +08:00
parent 35b0a5c565
commit 62ca8fa6b8
82 changed files with 314248 additions and 1519 deletions
+16 -7
View File
@@ -160,15 +160,24 @@ publication_status: ppublish=544, epublish=530, aheadofprint=478
## 5. 结论
**总体判断**:当前数据可支撑基础的纯文本搜索(title/abstract/author),但以下搜索功能完全阻塞:
**硬性要求:搜索功能必须与 PubMed 完全一致。**
1. **MeSH 搜索**`tree_numbers` 空表 + INNER JOIN → 0 结果
2. **期刊缩写搜索**`journal_iso` 覆盖率 0%
3. **ATM 自动术语映射** — Entry Terms 缺失、SynonymExpander 未集成
4. **精确短语**`phraseto_tsquery` 未使用,`setweight` 未配置
5. **搜索排名**`best_match` 权重公式错误,导致 ts_rank 几乎不影响排序
这意味着:
1. **所有 PubMed 字段标签**必须有对应的搜索路径(数据已存储的立即接通,未存储的补充抽取)
2. **所有搜索行为**(MeSH 展开、ATM 映射、布尔运算、日期范围、精确短语等)必须与 PubMed 一致
3. **不允许任何字段标签退化到纯文本搜索**——`[IP]``[VI]``[PG]``[LA]``[GR]``[NM]``[SH]``[EDAT]``[CRDT]``[MHDA]``[LR]``[DCOM]``[LID]``[AUID]``[COIS]``[SI]` 等,凡数据已存储的必须接通,缺失数据的补充抽取
修复路径:先解决数据导入 Bugjournal_iso、keywords、PMC_ID+ 搜索 Bugtree_number、布尔逻辑),再逐步补充字段标签和功能。
**当前阻塞或缺失项**
| 问题 | 严重性 | 说明 |
|------|--------|------|
| MeSH 搜索 — tree_numbers 空表 + INNER JOIN | **阻塞** | 所有 `[MH]`/`[MAJR]` 查询返回 0 结果 |
| 期刊缩写搜索 — `journal_iso` 覆盖率 0% | **阻塞** | `[TA]` 缩写搜索不可用 |
| ATM 自动术语映射 — Entry Terms 缺失 | **缺失** | 普通用户输入"lung cancer"不会触发 MeSH 展开 |
| 精确短语 — `phraseto_tsquery` 未使用 | **缺失** | `"lung cancer"` 精确搜索低效 |
| 字段标签未接通(15+ 个) | **缺失** | 数据已存储但解析器未路由到搜索 |
| 作者 ORCID 数据 — `[AUID]` | **缺失** | PubMed XML 中有 `<Identifier>` 但未抽取 |
| 搜索排名 — `best_match` 权重公式错误 | **Bug** | ts_rank 几乎不影响排序 |
详细实施步骤见 [12-搜索功能实施计划.md](12-搜索功能实施计划.md)。
数据统计详情见 [13-文献数据质量报告.md](13-文献数据质量报告.md)。