16 逆向索引:缩小搜索范围

第二天早上,Frank来到了位于首都中心的一家小店:Cloaks andMore。这间小店里几乎每一寸地方都被放满了披风。Frank好不容易挤出了一条路,来到了柜台前。

一个矮小的快要秃顶了的男人戴着厚厚的眼镜,抬头看了看Frank,说道:“欢迎来到Cloaks andMore。我是Gilbert Cloaksworth,能帮你做点什么?”

他上下打量着Frank,眼睛不停地看着Frank那件有些破旧的披风式大衣。当他看到那件披风上的补丁时,突然灵机一动。

“我知道了,你是来买披风的,”他用那些势利的商人所惯用的热情语气说道,“那你真是来对地方了。我们刚刚到了一批很好的森林旅行披风。”

“我是来寻找信息的,”Frank说道。他拿出从Array Cart上拿到的线头,放到那个人面前,说道:“我需要知道这个线头是哪件披风上的。”

Cloaksworth先生一动不动地说道:“所以你不买披风吗?”

“我只需要信息。”

“太遗憾了,”Cloaksworth冷淡地说道,“不过你还是来对地方了。我是这个城市里关于披风最权威的专家。”他拿过线头,看了几眼,接着,他从柜台下方拿出了一个巨大的放大镜,仔细地研究起来。

“黑色和黄色,用的是交叉编织的针法,”Cloaksworth轻声地说,“质量还不错。当然,还比不上我的标准。不过还算可以了。”

“你还能告诉我任何其他信息吗?”Frank说道,“有用一些的?”

店主皱了皱眉,不过紧接着便继续开始研究那个线头。“有一丝烧焦的痕迹。”他终于这样说道。

“被火烧过吗?”Frank问道。

“不,这个痕迹看起来太规律了。这种痕迹我只见过几次,而且都是在巫师的披风上见到的。这个披风上有一个咒语。”

“你知道是什么咒语吗?”Frank问道。

Cloaksworth摇了摇头:“这个你应该去问巫师。我是这城市里最懂披风的,又不是最懂咒语的。”

“那颜色呢?”Frank问道,“我很少见到这种颜色的披风。你能告诉我它是从哪来的吗?”

Cloaksworth笑道:“当然可以。我可是这个王国中最懂披风的人。”

他转身从身后的架子上拿下了一本巨大的书,并砰的一声将它放在柜台上。他随即翻到了书的最后。

“你在干什么?”Frank问道。

“我在《披风和纹章学索引》的第五卷中找这个披风的颜色,”店主回答道,“你不是想知道这种披风是从哪里来的吗?”

“那你为什么直接看书的最后?”Frank问道,“你难道不应该从目录开始看吗?”

Cloaksworth终于真心地笑了一回,说道:“这几年来,纹章分类学有不少大的突破!”他激动地说道,“曾几何时,我们找东西时都是像你说的那样,先从目录里开始浏览,找到后再翻到相应的页码。当然,翻页的过程是用二分搜索法。

“目录的确可以为书本的内容提供一个索引。但是对于我们现在想要进行的这种搜索来说,目录的整个结构就是错误的。它将书本里面的内容都按出现的顺序列出来了。如果你是想知道每个内容后面紧接着的是什么,那么这个顺序再合适不过了。但是整个王国现在已经有超过一万种披风花纹了!如果按这个顺序,光在目录里面找就需要花费很长时间。

“所以Amanda Cloakington,我的偶像,也是《披风和纹章学索引》的作者,发明了逆向索引。她将一些重要的词,比如披风的颜色,都在书本最后列了出来。几乎就像另一个目录一样。”

“这有什么用呢?”Frank问道,“她只是将目录中的信息又重复了一次。”

“是,她的确是在重复信息,但这一次她使用了一个不同的顺序。书本最后的索引是按关键词的顺序排序的。对于每一个词,她列出了它们在书本中出现的页数。”

Frank看着他,等待着他继续说下去。但看起来店主已经说完了。“所以呢?”Frank问道。

“你只需要找到你想要找的关键词,就可以在索引中看到需要看的页码是哪些了!”他激动地说,“你不再需要在目录中漫无目的地翻阅,而只需要直接找到你想要的词就行了。”

“但是你还是需要在索引中找你想要的词,不是吗?”Frank问道。

“的确。但是因为索引是按关键词首字母的字典序排序的,因而你可以用二分搜索。”

“那如果我所找的关键词出现在了很多页上呢?”

“你需要每一页都看一下。”Cloaksworth让步道。

“那如果你同时在找数个颜色呢?”Frank问道,“比如同时找三种颜色?”

“哈!这才是索引有趣的地方,”Cloaksworth说道,“你只需要找到它们所共同存在的页码就好了。可以算出所有关键词所在的页码集合的交集——也就是找到在所有页码集合中都出现过的页码。如果你的关键词足够多,你通常可以把页码的范围缩小到一两页。

“前几天,我在找一件藏青色和品蓝色组合的有木制扣子的披风。这样的披风总共也没有几种。只有一类人会用那种披风——业余天气预报员联盟。其实直到去年,他们一直用的都是藏蓝色和深绿色组合的披风。但半职业天气预报员联盟说这个颜色和他们披风的颜色——藏蓝色和浅绿色——太像了,所以业余天气预报员联盟只能换成了现在这种颜色。”

Frank想了想,点了点头。“有意思!”他说道。他马上就想到了这种逆向索引可以被用到其他类别的信息上面。警局的记录从来都是按日期排序的。利用这种新的方法,就可以同时把它们按犯罪类型或地点来索引。这些索引可以让研究的过程容易太多了。

“你觉得其他书籍也会用这种逆向索引吗?”Frank问道。

“不太可能,”店主嘲笑地说道,“世界上没有多少学科能复杂到需要使用索引。不是所有学科都像披风学这么有内涵的。”

他们一边说话,店主一边快速地翻动着书。“警察披风,”他最终说道,“Bool andFunctionia部门用的是这种颜色,还有几个其他的首都警察部门也是。财务部、薪酬部、记录部和信号部都用的是这个颜色。当然了,他们的图案设计都不同。从线头来看,这个披风是新派发的。警察局的警官都比较容易把披风穿旧,特别是信号部的。”

“你说这是一件新的警察披风?”Frank确认道。

“几乎肯定是,”Cloaksworth说道,“因为我不觉得这是私人订制的。这些颜色在20年前还挺流行,但在淡色流行起来后它们就不怎么流行了。真可惜——那个年代有好多美丽的披风。曾经我做过一件骑行时穿的披风,有双层扣子和……”