MiniLucene V1 最终验收¶
语言: English | 简体中文
于 2026-07-27 在以下位置通过验收:
~/MiniLucene-workspace/MiniLucene
在这个仅添加证据的提交之前,受测实现树为:
18db98104c5d3aeb3e75d453d2a4ec87ace43c1d
验证门槛¶
uv sync --dev
Resolved 8 packages
Audited 7 packages
uv run ruff check src tests tools
All checks passed
uv run pytest -q
227 passed in 5.78s
uv run python -m compileall -q src tests tools
exit 0
git diff --check
exit 0
未完成标记扫描只找到了有意留空的异常/数据类、清理用 except 分支、一个上下文管理器
主体,以及固定实现计划中的示例。没有发现被跳过的验收或未完成的生产实现。
可执行行为矩阵验证了每一行文档都恰好解析为一个已收集的 pytest 节点。它包含受支持 行为、故障实验、生命周期收尾和明确的 V1 非目标。
实现后的完成度审计还依据聚焦提交历史、阶段报告和验收节点,核对了全部四份可执行 阶段计划。全部 196 个可操作计划步骤均已勾选;没有可操作步骤仍处于开放状态。
故障与恢复证据¶
验收覆盖:
- RAM 发生变更前的文档验证与分析失败;
- 最终目录重命名前的分段数据失败;
- 清单替换前出现完整孤儿;
- 清单成功替换,同时旧读取器保留旧文件;
- 打开读取器时遇到校验和损坏会安全拒绝继续;
- 通过刷新可见但未提交的状态在重新打开后消失;
- 刷新、删除、更新与合并过程中的过时读取器;
- 写入器集合交换前发生合并发布失败;
- 重复关闭并聚合清理故障。
公共端到端验收会创建带字段索引、提交并重新打开索引、解析布尔短语查询、应用全局 BM25 与有界 Top-K、取回存储字段、安全高亮原始文本、刷新新状态、更新和删除文档、 保留旧读取器、显式合并、再次重新打开,并评估结果 ID。
所有者归零验收(owner-zero acceptance)结束时为:
writer_owner = None
reader_owners = ()
segment_owners = {}
temporary_jobs = ()
.writer.lock absent
.tmp-* absent
已安装包冒烟测试¶
uv build
Successfully built dist/minilucene_reference-0.1.0.tar.gz
Successfully built dist/minilucene_reference-0.1.0-py3-none-any.whl
uv pip install --python <isolated-venv>/bin/python <wheel>
Installed minilucene-reference==0.1.0
<isolated-venv>/bin/python -c \
"import minilucene; print(minilucene.__version__)"
0.1.0
<isolated-venv>/bin/minilucene --help
exit 0
已验收范围¶
V1 支持通过直接 Python 调用和本地 CLI 使用:
- 模式、存储/索引/分词字段语义及分析器;
- 位置倒排索引,以及词项、布尔、短语、前缀和全匹配查询;
- 全局活跃文档 BM25、字段加权和确定性有界 Top-K;
- 不可变且带校验和的教学分段,以及原子清单;
- 时间点读取器、NRT 刷新、删除、更新、合并,以及感知所有权的垃圾回收;
- 查询解析、安全高亮、确定性评估指标和固定的相关性语料库。
V1 明确排除 TCP/HTTP 适配器、远程兼容性、分布式复制或协调、Apache Lucene 编解码器兼容性、生产级索引优化、自动合并调度、向量字段、近似最近邻(ANN)和 混合检索。
仓库中不存在 course/ 或 chapters/ 目录。在验收此参考项目后,课程设计仍是独立的
未来任务。