怎么建立目录索引
给一本三百页的建立技术手册做目录索引,我花了整整一个下午。目录不是索引随便列个章节标题就完事——那种东西叫目录,不叫索引。建立索引是目录让你在需要的时候,三秒内翻到“TCP拥塞控制”在第87页,索引而不是建立翻遍整本书骂娘。
先搞清楚你要索引什么。目录书、索引PDF、建立个人笔记库、目录还是索引代码仓库?对象不同,手段完全不一样。建立我拿最常见的目录两种场景说:纸质书/PDF,以及本地Markdown笔记。索引
纸质书和PDF:手动但有章法
别指望软件自动生成一份能用的索引。我试过Calibre的索引插件,也试过Adobe Acrobat的“添加书签”功能,结果都是一堆按页码顺序排列的标题,毫无检索价值。真正好用的索引得你自己来。
做法很笨:通读一遍,拿张纸,每遇到一个关键概念就记下来,后面标页码。关键词怎么选?我的标准是——你未来会主动去查的词。比如“B+树”值得索引,“数据库”这种满篇都是的词就算了。索引条目控制在50到150条之间,太少没用,太多等于没做。
有个小技巧:用Excel或Numbers建三列——关键词、页码、备注。备注写“见第5章图3”或者“仅简要提及”。排序按拼音或字母,别按页码。按页码排的索引是给机器人看的。
PDF的话,做完索引后可以用Acrobat的书签功能把关键词链接到对应页面。手动加,一条一条加。听起来烦,但一本两百页的PDF,熟练后四十分钟能搞定。之后每次查阅,省下的时间远超这四十分钟。
Markdown笔记库:让工具替你干活
我的Obsidian库里有大概两千篇笔记。靠手动做索引?不可能。但完全自动生成的那种“所有文件列表”也不叫索引,叫文件管理器。
我的做法是混合式。每篇笔记顶部加一行tags: [网络协议, 性能优化],再用Dataview插件写一个查询页面:
```dataview table file.mtime as "最后修改" from #网络协议 sort file.mtime desc ``` 这样打开“网络协议”索引页,自动列出所有相关笔记,按修改时间倒序。新笔记只要打上标签,索引自动更新。不用维护,不用手动录入。
但光有标签不够。有些概念跨多个标签,比如“零拷贝”同时属于“操作系统”和“网络编程”。这时候我会在索引页里手动加一行链接:[[零拷贝]] — 同时见 #操作系统 #网络编程。手动和自动结合,索引才有“人味”。
几个容易踩的坑
别用“第一章”“第二章”当索引条目。没人会去查“第二章”。查的是“递归下降解析”或者“死锁检测”。
索引条目别超过一行。超过一行的,拆成两条。我见过有人把“关于分布式一致性协议中Paxos算法在异常情况下的处理”塞进一个索引条目——这不是索引,这是摘要。
更新频率很重要。纸质书索引做完就固定了,但电子笔记的索引必须跟着内容走。我的习惯是每周五下午花二十分钟过一遍本周新增笔记,补标签、调索引页。不做的后果是三个月后索引彻底失效,还不如没有。
最后说个反直觉的:索引不是越全越好。我早期给笔记库做索引,恨不得每篇都收录,结果索引页比笔记还长。现在我的标准是——如果一条笔记三个月内没被任何索引页引用过,要么删掉,要么它不值得被索引。索引是过滤器,不是仓库。
(责任编辑:知识)
