PISA — 已合并的上游贡献

PISA 中一项已合并的类型安全重构,同时记录高性能检索架构、维护者指导与贡献证据。

已接受的贡献与指导

我通过 pull request #641PISA 上游搜索引擎贡献代码。补丁把“查询算法是否需要 WAND data”的布尔值改为作用域枚举 WandDataRequired::{Yes, No},并同步更新命令行映射、需求检查和测试,同时保持运行行为不变,使接口更难被误用、调用点也能自解释。

这项工作实现了维护者 Michał Siedlaczek 提出的 issue #634。他确认了作用域内 YesNo 的命名,检查了合并前验证记录,并将测试通过的补丁合并为上游 commit ae8cc33。这是维护者指导的开源工作,不是学术导师关系。

PISA 的功能

PISA 是一个用 C++ 构建的高性能平台,用于为大规模文本集合建立索引、执行搜索算法和开展信息检索实验。它支持多种压缩索引格式、文档重排与分片、WAND 统计、多种查询处理策略,以及面向研究的命令行工具。

上游官方索引流水线图,固定到精确 commit 与 Git blob 后在本地归一化;未使用合成项目插图。

原理与架构

索引流水线先把原始文集解析为保留每篇文档 token 顺序的 forward index,再反转为 term 到 document 的 posting list,并可重排或分片 document ID。选定的 codec 压缩 inverted index;额外步骤生成动态剪枝所需的 WAND statistics。查询处理器把索引、scorer 和 exhaustive、WAND、block-max WAND 等算法组合起来,返回稳定的 top-k 结果。本次贡献的枚举使每种算法是否依赖 WAND data 在这一架构边界上成为显式信息。

证据与归属

目录仍将我的仓库标注为 fork,因为默认分支没有领先上游的提交。个人贡献被上游接收的证据是上面的 PR 与合并 commit。