导读
开始读源码之前,先讲清楚两件事:
- 怎么读这一卷:0.27.0 的 tag 和 crates.io 包是同一个 commit;写入、查询、磁盘三条主线每一步落在哪个函数、哪一页讲;实验环境,以及哪些数字随核数变化(
Index::writer的线程数);Cargo.toml里每个 feature 打开什么:默认五个各管什么,sstable不是词典的开关,换词典的是quickwit,用它写的索引在默认构建下打得开、查询时报Unsupported dictionary type;本卷不讲什么。 - 源码地图:用
cargo tree核实的 crate 依赖图:tantivy-sstable不开quickwit也会被编译,因为tantivy-columnar用它存字符串列的字典;src/下每个目录一句话职责和行数;一个段由哪六个文件组成、各由谁写;ARCHITECTURE.md和doc/每篇对应本卷哪一页,哪些地方已经和代码对不上。
flowchart TB read[怎么读这一卷] --> ver[锁定版本] read --> lines[三条主线] read --> exp[实验环境] read --> feat["feature 表"] map[源码地图] --> deps["依赖图 cargo tree"] map --> dirs["src 目录职责"] map --> files[段文件与上游文档]
💬 关联讨论
发起讨论加载中...