34047007@qq.com
1f46f05586
fix: 第15轮搜索审计修复 — __RANGE_*标记在括号组内被错误处理
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
__RANGE_*标记(如__RANGE_EDAT__)是日期范围解析的副作用标记,
在顶层被正确过滤。但在括号组内(如(2024:2025[EDAT] AND cancer))
被_parse_primary放入result.groups,_pubmed_conditions遍历组内词
调用_single_term_condition时无对应handler,回退到纯文本搜索
_field_condition("all", "2024:2025"),返回零结果(静默数据丢失)。
修复:组遍历循环中跳过_is_range_end标记。
2026-07-28 13:50:43 +08:00
34047007@qq.com
7dfde12e46
docs: 第14轮搜索审计修复记录(4项修复)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-28 13:21:38 +08:00
34047007@qq.com
daf169d265
fix: 第14轮搜索审计修复 — 非DP日期字段单年值失效/跨字段year_from覆盖等4项修复
...
HIGH (2): 非DP日期字段(EDAT/CRDT/MHDA/LR/DCOM/DEP)单年值未设置
专用 *_from/*_to,EDAT/CRDT等列过滤静默失效;
跨日期字段 year_from/year_to 互相覆盖,DP条件被丢弃
MINOR (2): MHDA/LR/DCOM/DEP 缺少 _PARTIAL_DATE_RE 分支;
_single_term_condition 未处理括号组内日期字段
2026-07-28 13:21:24 +08:00
34047007@qq.com
c5f2f27d7f
docs: 第13轮搜索审计修复记录(21项P0-P2修复)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-28 12:59:44 +08:00
34047007@qq.com
1d345359fd
fix: 第13轮搜索审计修复 — _SPECIAL_FIELDS set.get()崩溃/boolean=or AND语义等21项修复
...
P0 (1): _SPECIAL_FIELDS 为 set 误调 .get() → (a OR b)[TI] 全面崩溃的回归修复
P1 (3): exclude_preprints 丢弃 NULL 记录;boolean=or 数字/文本词被 AND;
journal 排序 keyset 忽略 journal_iso 排序列
P2 (2): 日期字段接收非日期文本导致 SQL 错误;日期范围回退保留字段标签
MINOR (4): 二月非闰年扩展为29日;日期校验缺日历正确性;
尾部 AND 产生空 Term;精确短语 all 搜索缺 journal ILIKE
2026-07-28 12:59:38 +08:00
34047007@qq.com
80915f28a9
docs: 第12轮搜索审计修复记录(21项P0-P2修复)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-28 12:38:23 +08:00
34047007@qq.com
6f861c8543
fix: 第12轮搜索审计修复 — _normalize_field_label 崩溃/keyset NULLSLAT/共享列表变异等21项修复
...
P0 (3): _normalize_field_label 函数缺失导致 (a OR b)[TI] 崩溃;
共享列表变异污染 result.groups;POST /search/advanced 缺少用户认证
P1 (8): has_not 忽略括号内 NOT;紧凑日期 YYYYMMDD 未归一化;
日期字段非日期文本 SQL 错误;keyset NULLSLAT ~50% 空值行跳过;
first_author 非 dict JSON 崩溃;MeSH 无匹配静默丢弃;
相关性排序含否定词;词数检查在 PubMed 清洗之前;
普通搜索缺错误处理;#N 引号感知不完整
P2 (6): 月越界退化;MH/MAJR FALSE 语义;field 白名单缺字段;
retracted/negative_result/tag_ids 验证器;resolveQuery 重复调用;
SearchRequestBody.page 可选;restoreFromQuery showCustomYear
2026-07-28 12:38:17 +08:00
34047007@qq.com
89e154caa2
docs: 第11轮搜索审计修复记录(16项P0-P2修复)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-28 12:09:55 +08:00
34047007@qq.com
4e964c955b
docs: 新增第10轮搜索审计修复记录(缓存键碰撞/OR语义/affiliation/前端OR和精确短语)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-28 11:41:38 +08:00
34047007@qq.com
b26f5572e9
fix: 第9轮搜索深度审计 — MeSH headings 完全从 search_tsv 缺失等5项修复
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CRITICAL:
- MeSH headings search_tsv key 错误:trigger 用 value->>'name' 但数据存于
'descriptor' 键,导致 MeSH 术语对 tsvector 贡献完全丢失
- 新建 af4a8b2ec873 迁移:修复 key 名 + 全库回填
HIGH:
- 测试套件 test_service_search_engine.py 无断言价值(module-level mock
杀死缓存测试,所有 search() 只 assert total == 0)
- Affiliation 从 tsvector 剥离(f1a2b3c4d5e6 引入 author_names_text 时丢失)
MEDIUM:
- backfill_search_tsv.py 严重过期(缺 mesh/chemicals/genes/keywords)
LOW:
- features.py query 无 max_length 字符限制(仅 100 词限制)
docs: 13-搜索修复全记录.md 新增第9轮
2026-07-28 11:26:35 +08:00
34047007@qq.com
73f9468384
fix: 第8轮搜索深度审计修复 — 缓存失效、Redis重试、中文标签、翻页稳定性等12项
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CRITICAL:
- invalidate_search_cache 清理 atm:* 缓存(MeSH ATM扩展不再用过期结果)
- Pro 方案 api_quota_per_day 1000→10000(修复低于 Free 的数据错误)
- CacheService/RateLimitMiddleware Redis 连接失败60秒自动重试(原永久降级)
- 普通搜索中文输入自动匹配 GlobalTag.name_zh(如"肺癌"通过MeSH标签关联文献)
- AdvancedPubSearchView resolveQuery 添加 seen Set 检测交替 #N 循环引用
HIGH:
- 限速器 _burst_windows 每500请求清理过期条目(防止内存泄漏)
- cron daily_ftp_update 末尾调用 invalidate_search_cache()(自动管道不再用过期缓存)
MEDIUM:
- _apply_order_by ASC 排序加 id tiebreaker(title/journal/first_author翻页跳行/重复)
- _keyset_condition 所有 is_(None) 加 id tiebreaker + __NULL__ 哨兵值
- _field_condition("all") 默认tsvector路径加 journal/journal_iso ILIKE 兜底
- SearchView restoreFromQuery date_preset/year_from/year_to 优先顺序修复
docs: 更新 12/13 搜索文档,移除 CLAUDE.md 陈旧 SQLite 提及
2026-07-28 11:02:29 +08:00
34047007@qq.com
c50831d1d8
test: 修复全量测试套件 — 1004 passed,消除注册限速 429 等故障
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
全部 auth 类 fixture 从 HTTP register 改为 DB 直接创建,绕过 6次/小时 IP 限速
(conftest、test_literature、test_subscriptions、test_verification、test_auth、
test_approvals、test_notifications、test_user_settings 共 8 个文件)。
同步修复 europe_pmc 解析、admin pipeline、ai_summary、email_service、
security/permissions 等共 21 个文件的断言和适配问题。
2026-07-27 22:19:27 +08:00
34047007@qq.com
91748bf668
docs: D6 [SH]/[MAJR] 标注为已知限制L6(依赖MeSH抽取质量),移除已修复的L1(混合布尔)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-27 15:19:39 +08:00
34047007@qq.com
fe7461e81a
docs: 补充 D5 #N 历史引用设计决策说明
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-27 15:18:36 +08:00
34047007@qq.com
5a3e5c03cd
docs: 记录 P7-23 混合布尔引擎分支修复
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-27 15:15:36 +08:00
34047007@qq.com
2d76e8afe2
docs: 记录 D2/D3 修复(P7-21/P7-22)
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-27 14:23:34 +08:00
34047007@qq.com
62be0efb59
fix: 第七轮深度搜索审计修复 — 20项
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
- HIGH: isdecimal() → re.match() for PMID (non-ASCII digit crash)
- HIGH: boolean_operator 应用到字段分组和无标签词(AND/OR 错误)
- HIGH: Cursor 分页 pub_date 优先(article_date 导致数据错位)
- Parser: parse 异常处理器清理字段标签/布尔符/引号
- Parser: _parse_range date:year 反向交换(第4分支)
- Parser: MAX_TERMS 保护、TITLE/ABSTRACT 大写键补充
- Engine: best_match 排序剥离字段标签
- Engine: year_from/year_to is not None(年份=0 被 falsy 跳过)
- Engine: _single_term_condition SB 字段全量分发
- Engine: journal_tiers/nlm_subsets 空条件预警(0结果保障)
- Engine: ATM 展开和 _expand_mesh_tag_ids pass → logger.exception
- Engine: 降级 regex [\w/: -] 兼容 [MH:noexp] 冒号
- Frontend: syncSearchToUrl 移到 finally 块
- Frontend: 年份滑块/resetAllFilters 清除 URL 日期
- Frontend: Null cursor 日期安全守卫
- Docs: 新增 P7-1~P7-20 记录,测试数更新至 276
2026-07-27 13:01:52 +08:00
34047007@qq.com
4495ef9e0a
fix: 第六轮全面搜索审计修复 — 12项
...
Parser: Title/Abstract大小写匹配、末尾OR空Term保护、tokeniser gap字符恢复、
混合日期范围反转支持
Engine: field标签正则含/、ATM括号剥离、name_zh LIMIT 100、
year_from/ year_to is not null检查
Docs: 更新修复全记录至第六轮
2026-07-27 12:47:09 +08:00
34047007@qq.com
7032accd31
docs: 更新第五轮修复记录提交哈希
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
2026-07-27 11:55:21 +08:00
34047007@qq.com
275a9f6511
fix: 第五轮PubMed搜索审计 — 4项边缘案例修复 + 第5轮审计文档
...
Parser边缘案例修复:
- P5-1: 尾部NOT导致IndexError降级(_parse_not_expr添加EOF守卫)
- P5-2: 单数字日期格式不被识别(YYYY-M-D→YYYY-MM-DD归一化)
- P5-3: is_pubmed_syntax不处理全角字符(增加NFKC归一化)
- P5-4: extract_pubmed_query_for_prisma不能处理[Title/Article]
同时将在前几轮修复的F1-F8([MH:noexp]顶层支持、NOT De Morgan、
NOT NOT递归、Custom Range日期、HomeView恢复、precision_mode清理、
is_oa注释、N+1批量优化)补充文档核对验证。
2026-07-27 11:55:03 +08:00
34047007@qq.com
2979de6f9c
docs: 新增搜索修复全记录文档(13-搜索修复全记录.md)
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
涵盖 4 轮 59 项修复的详细背景、根因分析、修改内容和变更文件,
按轮次分别记录 Phase 0-7、第二轮(8项)、第三轮(14项)、第四轮(11项)。
2026-07-27 11:22:22 +08:00
34047007@qq.com
807972d41b
feat: 第四轮PubMed搜索字段补全 — 11项修复
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
- [Title/Abstract]/[OAB]/[WORD]/[FI]/[SO]/[PL] 注册
- [GEN] 基因符号搜索 → gene_symbols JSONB
- [PMC] PMCID 搜索 → pmc_id 列
- [OT] 语义修复 → keywords JSONB(不再映射到 all)
- phraseto_tsquery 精确短语(GIN 索引替代 ILIKE)
- has_pubmed_terms 门控补全新字段
- 127 项搜索测试全部通过,前端构建无报错
2026-07-27 11:19:10 +08:00
34047007@qq.com
6a8eb70dde
docs: 更新搜索功能差距分析 + 实施计划至第三轮修复完成
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
- 11-搜索功能差距分析.md: 修复表格统一为 48 项,固件 Bug 区三轮全列
- 12-搜索功能实施计划.md: Phase 2/3 加状态栏,验证流程更新为当前命令
2026-07-27 11:07:43 +08:00
34047007@qq.com
62ca8fa6b8
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.
2026-07-27 08:35:12 +08:00
34047007@qq.com
a6cd99a4ca
feat: initial commit - oncology literature search platform
...
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
OncoLit: a multi-tenant oncology literature search, feed, and
collaboration platform. Built with FastAPI + Vue 3 + PostgreSQL.
Includes PubMed pipeline, drug approvals, AI summaries, and
systematic review tools.
2026-07-27 07:59:18 +08:00