移除论文精确计数并优化游标与领域查询 [skip ci] #18

Merged
Zayden-Jung merged 1 commits from codex/research-cursors into main 2026-11-07 09:30:23 +00:00
Collaborator

公开论文列表原先每次先做全库/全匹配 count(*),再筛选排序取页,导致读8篇也会等待数秒或超时。现在移除精确计数和 OFFSET,按游标获取 pageSize+1 个位置,只读取当前页正文和批量元数据。

改动:

  • recent 使用 ID 降序;title 使用存储 title_key 与 ID,支持双向游标和同标题记录。游标绑定查询/范围/领域/排序/页大小,严格验证版本、格式、长度与跨筛选复用。
  • recent 纯领域查询直接沿现有 (tag_id,paper_id) 索引取页,DISTINCT 去重来源证据。全文/作者先尝试512的有限 ID 区间,存在少量匹配时扩展一次至4096;仍不够一页则回到完整索引检索,避免截断稀疏/旧结果。
  • 保留只读快照、SELECT-only 角色、8秒预算与2个并发限制,未新增 DDL、索引、全局数据库或代理配置。

契约变更:返回 items,nextCursor,previousCursor,topics,pageSize;移除 total/page,拒绝旧 page 参数。需与 Thesisly 配套 PR 协调切换。本 PR 不代表正式服务已发布。

验证:在用户已确认 ECS 手动编译、单元与隔离 PostgreSQL 集成测试;覆盖双向遍历、相同标题、发布文本编码、游标错误、重复领域证据、大 ID 间隔、有限扩展成功与完整回退、只读权限和原始来源元数据。包级单元检查及最终10项游标/PostgreSQL集成测试全部通过。编译结束后串行直连临时API:首页65ms、graph 345ms、cs.AR 145ms、多词搜索1.312s;三种游标往返通过。具体测量和波动限制见 docs/research-api.md。

限制:标题排序与复杂组合仍使用完整候选搜索,可能超时;跨请求不冻结语料库快照。不运行 CI,不做本地构建,不调整 Traefik。等待用户手动合并。

配套 PR:Zayden-Jung/Thesisly#3

公开论文列表原先每次先做全库/全匹配 count(*),再筛选排序取页,导致读8篇也会等待数秒或超时。现在移除精确计数和 OFFSET,按游标获取 pageSize+1 个位置,只读取当前页正文和批量元数据。 改动: - recent 使用 ID 降序;title 使用存储 title_key 与 ID,支持双向游标和同标题记录。游标绑定查询/范围/领域/排序/页大小,严格验证版本、格式、长度与跨筛选复用。 - recent 纯领域查询直接沿现有 (tag_id,paper_id) 索引取页,DISTINCT 去重来源证据。全文/作者先尝试512的有限 ID 区间,存在少量匹配时扩展一次至4096;仍不够一页则回到完整索引检索,避免截断稀疏/旧结果。 - 保留只读快照、SELECT-only 角色、8秒预算与2个并发限制,未新增 DDL、索引、全局数据库或代理配置。 契约变更:返回 items,nextCursor,previousCursor,topics,pageSize;移除 total/page,拒绝旧 page 参数。需与 Thesisly 配套 PR 协调切换。本 PR 不代表正式服务已发布。 验证:在用户已确认 ECS 手动编译、单元与隔离 PostgreSQL 集成测试;覆盖双向遍历、相同标题、发布文本编码、游标错误、重复领域证据、大 ID 间隔、有限扩展成功与完整回退、只读权限和原始来源元数据。包级单元检查及最终10项游标/PostgreSQL集成测试全部通过。编译结束后串行直连临时API:首页65ms、graph 345ms、cs.AR 145ms、多词搜索1.312s;三种游标往返通过。具体测量和波动限制见 docs/research-api.md。 限制:标题排序与复杂组合仍使用完整候选搜索,可能超时;跨请求不冻结语料库快照。不运行 CI,不做本地构建,不调整 Traefik。等待用户手动合并。 配套 PR:https://gitea.entroia.com/Zayden-Jung/Thesisly/pulls/3
codex-bot added 1 commit 2026-11-07 09:28:37 +00:00
Zayden-Jung merged commit 9f01aa3db8 into main 2026-11-07 09:30:23 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/foundry-core#18