来源书籍
管理海量数据压缩、索引和查询
信息检索/搜索引擎类
类别清单覆盖
7/7
已覆盖 7
补充生成 0
未覆盖 0
全书概览
管理海量数据:压缩、索引和查询(第2版)
Skill 版本:v1
类别:信息检索/搜索引擎类
四象限结论:经典原理(高浓度 + 高稳定性)
评级理由: 本书是信息检索领域的经典教材(Ian H. Witten, Alistair Moffat, Timothy C. Bell 著,曾是斯坦福大学信息检索课程首选教材)。全书围绕”如何用最小空间存储海量文档,同时提供最快的关键词检索”这一核心矛盾展开,逐章拆解为压缩、索引、查询、索引构造、图像压缩五大问题域。
- 高浓度:不是操作手册,而是持续讨论”为什么这样设计”——例如第2章比较哈夫曼编码与算术编码的取舍,第4章讨论布尔查询与排名查询的实现权衡,第9章”选择压缩模型”一节直接讨论半静态模型 vs 自适应模型 vs PPM 在检索系统场景下的取舍逻辑,均是方案对比+原因说明,而非罗列步骤。
- 高稳定性:核心算法(哈夫曼编码、算术编码、倒排文件、布尔/排名查询、向量空间模型、词根化、召回率-精确率评价)是数据压缩与全文检索的奠基性理论,尽管书中引用的 MG 系统、Canterbury 语料等具体工具/数据集已过时,但推理逻辑至今仍是 Elasticsearch/Lucene 等现代搜索引擎的理论基础。
例外:附录A(mg系统指南)是纯操作步骤(安装命令、环境变量设置),附录B(新西兰数字图书馆)主要是功能截图与 UI 描述,两者信息浓度低,按”略读”处理。
章节进度追踪表
| 章节号 | 章节标题 | 精读/略读 | 状态 | 卡片数 |
|---|---|---|---|---|
| 前言/译者序等 | 非正文(书名页/版权页/原著赞誉/译者序/前言) | 略读 | done | 0 |
| ch01 | 第1章 概览 | 精读 | done | 7 |
| ch02 | 第2章 文本压缩 | 精读 | done | 11 |
| ch03 | 第3章 索引 | 精读 | done | 11 |
| ch04 | 第4章 查询 | 精读 | done | 11 |
| ch05 | 第5章 索引构造 | 精读 | done | 6 |
| ch06 | 第6章 图像压缩 | 精读 | done | 4 |
| ch07 | 第7章 文本图像 | 精读 | done | 3 |
| ch08 | 第8章 混合图文 | 精读 | done | 2 |
| ch09 | 第9章 系统实现 | 精读 | done | 3 |
| appA | 附录A mg系统指南 | 略读 | done | 0 |
| appB | 附录B 新西兰图书馆 | 略读 | done | 0 |
(EPUB spine 文件对应关系:ch01→text00007.html,ch02→text00008.html,ch03→text00009.html, ch04→text00010.html,ch05→text00011.html,ch06→text00012.html,ch07→text00013.html, ch08→text00014.html,ch09→text00015.html,appA→text00016.html,appB→text00017.html)
待关联术语
| 术语名 | 出现章节 | 一句话语境 |
|---|---|---|
| trie树(数字搜索树) | 第2章 | 用于加速LZ77查找匹配子串或LZ78语法分析短语的多叉树结构,书中仅一句话带过未展开原理 |
实践卡进度
| 序号 | 实践标题 | 实践方式 | 状态 | 关联章节 | 产出 |
|---|---|---|---|---|---|
| 1 | 用cardbox真实FTS5搜索验证TF-IDF单调性原则 | 实现深读 | done | TF-IDF相关章节 | 真实检索排序结果记录 |
| 2 | 用本仓库真实文本实测哈夫曼编码与算术编码的压缩率差距 | 横向学习 | done | 编码方法相关章节 | gzip/bzip2压缩率对比与熵估算 |
类别清单核对(信息检索/搜索引擎类)
| 维度 | 覆盖状态 | 关联卡片标题或未覆盖理由 |
|---|---|---|
| 压缩模型选择(统计/字典模型取舍) | 已覆盖 | 符号方法与字典方法的本质区别、静态半静态自适应建模的取舍 |
| 索引结构设计(倒排文件等) | 已覆盖 | 倒排索引与布尔运算的对应关系、三种索引结构本质上是同一件事的变体、文档间隔是倒排列表可压缩的关键 |
| 查询处理策略(布尔/排名查询) | 已覆盖 | 合取查询按词频升序处理、分块索引为压缩列表找回二分查找能力、n-gram索引作为过滤器而非最终答案 |
| 相关性排序模型 | 已覆盖 | TF-IDF的两条单调性原则、向量空间模型用夹角而非距离衡量相关性、相关性反馈用用户判断修正查询向量 |
| 索引构造的空间-时间权衡 | 已覆盖 | 索引构造算法的核心取舍是内存磁盘与扫描趟数、外部归并排序把倒排问题转化为排序问题、压缩临时文件同时省空间和省时间 |
| 检索效果评价方法 | 已覆盖 | 召回率与精确率的结构性对立、万维网搜索场景下精确率碾压召回率 |
| 分布式检索策略 | 已覆盖 | 分布式检索的两阶段协作 |
7⁄7 维度已全部覆盖,无需补充生成卡片。
引用文献
| 标题 | 类型 | 出现章节 | 一句话语境 |
|---|---|---|---|
| Text Compression(John G. Cleary, Ian H. Witten, Timothy C. Bell 著) | 书 | 前言 | 第2章文本压缩内容的完整扩展版,专讲压缩方法 |
| Modern Information Retrieval(R. Baeza-Yates, B. Ribeiro-Neto 著,简称MIR) | 书 | 译者序 | 与本书并列为全球信息检索课程主要教材之一 |
章节与卡片
01
- 全文检索的核心矛盾:存储空间与检索速度 普通读书笔记卡
01 压缩
- 基于指针复用的压缩原理 普通读书笔记卡
- 分块压缩与随机访问的权衡 普通读书笔记卡
01 索引
- 停用词的压缩经济学 普通读书笔记卡
01 文档索引
- 有损压缩与无损压缩的边界 普通读书笔记卡
01
- 全文检索与传统数据库的根本差异 普通读书笔记卡
- memex:以联想代替目录的检索设想 普通读书笔记卡
02
- 信息量与熵:压缩的理论下限 普通读书笔记卡
- 静态、半静态、自适应建模的取舍 普通读书笔记卡
- 符号方法与字典方法的本质区别 普通读书笔记卡
- 哈夫曼编码的整数位长天花板 普通读书笔记卡
- 范式哈夫曼编码:为随机访问而生的编码变体 普通读书笔记卡
- 算术编码相对哈夫曼编码的优势与代价 普通读书笔记卡
- PPM:用"转义"符号在多阶上下文间降级 普通读书笔记卡
- 块排序压缩:先重排文本再压缩 普通读书笔记卡
- LZ77 与 LZ78:滑动窗口 vs 短语表的取舍 普通读书笔记卡
- 同步点:压缩格式与随机访问之间的接口 普通读书笔记卡
- 压缩率与解码速度:不是单一维度的权衡 普通读书笔记卡
03
- 索引粒度:精确度与存储空间的取舍 普通读书笔记卡
- 倒排索引:布尔查询即列表的集合运算 普通读书笔记卡
- 索引前的三种转换:都在拿准确率换召回率 普通读书笔记卡
- 文档间隔(d-gap):倒排列表可压缩性的关键转换 普通读书笔记卡
- 每种整数编码方式都隐含一个概率分布假设 普通读书笔记卡
- 索引压缩的全局模型与局部模型之争 普通读书笔记卡
- 词的出现是成簇的,不是均匀撒在文档集里的 普通读书笔记卡
- 插值编码:用双向已知边界代替单向递推 普通读书笔记卡
- 签名文件:用哈希叠加换取"可能匹配"而非精确匹配 普通读书笔记卡
- 倒排文件、位图、签名文件是同一个稀疏矩阵的不同压缩方式 普通读书笔记卡
- 索引一旦压缩,停用词过滤的收益就大幅缩水 普通读书笔记卡
04
- 前端编码:排序字典里的相邻词共享前缀 普通读书笔记卡
- 最小完美哈希函数:为静态字典预先消灭哈希冲突 普通读书笔记卡
- n-gram 索引:先用廉价过滤器筛,再用精确匹配兜底 普通读书笔记卡
- 合取查询:先处理最短的倒排列表,让候选集只减不增 普通读书笔记卡
- 分块索引:给压缩后的倒排列表找回二分查找能力 普通读书笔记卡
- TF-IDF:词频与文档频率的两条单调性原则 普通读书笔记卡
- 向量空间模型:比的是方向,不是距离 普通读书笔记卡
- 召回率与精确率:同一份排序结果的两种切法 普通读书笔记卡
- 网页搜索:用户行为决定了精确率碾压召回率 普通读书笔记卡
- 相关性反馈:把用户的取舍读回查询向量本身 普通读书笔记卡
- 分布式排名查询:先协商全局统计量,再各自算分再合并 普通读书笔记卡
05
- 索引构造的本质是转置一个天文数字大小的稀疏矩阵 普通读书笔记卡
- 用外部归并排序绕开随机访问,把倒排问题转化为排序问题 普通读书笔记卡
- 压缩临时文件:磁盘I/O的节省超过了压缩计算的开销 普通读书笔记卡
- 内存预分配必须按最坏情况定界,不能按平均情况估算 普通读书笔记卡
- 索引构造算法的核心取舍:内存、磁盘临时空间与扫描趟数 普通读书笔记卡
- 动态集合:靠周期性重建和预留空隙摊销更新成本 普通读书笔记卡
06
- 图像压缩:把上下文建模从一维扩展到二维 普通读书笔记卡
- "超视力"压缩:用一个作弊的模型估计真实算法的理论天花板 普通读书笔记卡
- 例外模式:给通用算法打补丁,专门保护它系统性破坏的结构 普通读书笔记卡
- JPEG:先决定丢什么信息,再决定怎么编码剩下的 普通读书笔记卡
07
- 文本图像压缩:把[[LZ77与LZ78的窗口取舍]]的字典思想搬到像素上 普通读书笔记卡
- 用"预测它要花多少比特"来定义两个符号有多相似 普通读书笔记卡
- 残差图:用一次异或把有损和无损压缩统一成同一套设计 普通读书笔记卡
08
- Hough变换:把"哪些点共线"变成参数空间里的投票问题 普通读书笔记卡
- 页面切分:从碎片往上并 vs 从整体往下切 普通读书笔记卡
09
- 哈夫曼码字溢出:病态情况远比直觉估计的更容易触发 普通读书笔记卡
- 按频率裁剪字典:牺牲一点压缩率换回一半解码内存 普通读书笔记卡
- 压缩倒排文件不是空间换时间,而是空间时间双赢 普通读书笔记卡
相关主题
暂无公开主题。