影响索引长度的因素
本文节选自《深入搜索引擎——海量信息的压缩、索引和查询 》一书 序言
词根化处理和大小写折叠的基本目的是为了构造简单的查询, 但是随之而来的是额外的好处,即倒排文件大小显著地降低了。主要有两个原因,首先只需要存储更少的倒排列表,需要那些存储的倒排列表变得稠密。按每个指针计算,存储代价更小79;其次文档中的术语平均频率增加了,因此整个指针将会更少。
例如,在大小写折叠和词根化处理后,对于TREC文档集合,索引的指针数粗略地计算大约降低了16%。采用Golomb编码的索引大约降低了30%,然而这种来自词根化索引的空间节省必然会在某种程度上抵消存储具有词根化能力的字典(lexicon)的空间耗费80。一个未词根化且无大小写折叠的字典能够在系统的文本压缩组件(text compression components)间,以及索引子系统中共享,但是词根化的字典不能。在TREC文档集合中,字典大约需要5 MB。权衡地看,依然是词根化更好些,大约能节省35 MB。 在签名文件中,词根化和大小写折叠的效果将会把每个记录中出现的非重复术语的数量降低。因此降低了能够满足给定的错配率所需的签名宽度,这样相似的节省还会不断增多。对于位图索引,较少的词需要被索引。因此节省也会增多,与倒排文件及签名文件类似的缩减结果也就显而易见了。
相关文章: 深入搜索引擎的关键——索引
更多精彩资源:
设计博客 http://www.cnblogs.com/designbook
博客园: http://www.cnblogs.com/broadview/
Web开发专栏 http://blog.youkuaiyun.com/broadviewwebdev
嵌入式 http://blog.mcuol.com/Broadview/index.htm
程序设计专栏http://blog.youkuaiyun.com/broadviewprograming
数据库专栏 http://blog.youkuaiyun.com/broadviewdatabase
Phpchina: http://www.phpchina.com/home/space.php
Cn-java: http://www.cn-java.com/www1/?564186/
Itpub: http://space.itpub.net/13164110/