知识卡片
索引构造算法的核心取舍:内存、磁盘临时空间与扫描趟数
内容
本章的索引构造算法本质上是同一问题在三个资源维度(内存、临时磁盘、扫描次数)之间的不同取舍点,没有哪种方法三者同时最优。内存越小越需多批次处理、多扫描几遍;磁盘越宽裕越能减少归并趟数。最终结论:处理GB级文本,基于排序的原地多路归并和基于文本切分的内存内压缩两种方法胜出,额外磁盘开销压到最终索引大小的10%~35%以内。资源维度多于两个相互制约时,最优算法本身没有意义,只有给定约束下最优才有意义。
参考来源
- 位置:第5章《索引构造》各算法对比小节(源文件:_chapter-text/ch05.txt)
- 结论依据:原文给出原地多路归并(35%额外磁盘)与基于文本切分(不足10%额外磁盘)等方法的具体空间开销对比,并说明GB级文本适合这两种方法,直接支持卡片论点。
- 原始内容:"对于基于排序的方法来说,只需要相当于最终压缩的倒排文件大小的35%的额外空间即可……假想的文档集合倒排需要435MB磁盘空间来生成400MB倒排文件,这个额外开销不足10%,而5.3节介绍的原地归并排序在额外磁盘的使用比例为35%。"