Rust in Everything
基于 tantivy 0.27.0

导读

开始读源码之前,先讲清楚两件事:

  1. 怎么读这一卷:0.27.0 的 tag 和 crates.io 包是同一个 commit;写入、查询、磁盘三条主线每一步落在哪个函数、哪一页讲;实验环境,以及哪些数字随核数变化(Index::writer 的线程数);Cargo.toml 里每个 feature 打开什么:默认五个各管什么,sstable 不是词典的开关,换词典的是 quickwit,用它写的索引在默认构建下打得开、查询时报 Unsupported dictionary type;本卷不讲什么。
  2. 源码地图:用 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[段文件与上游文档]

💬 关联讨论

发起讨论
加载中...