当今社会在生产与生活中产生的数据越来越多,要在海量的数据中搜索有用的信息,信息检索系统如百度、谷歌等,是必不可少的工具。一个信息检索系统,特别是基于大规模数据集的信息检索系统,只有建立索引才能满足用户的检索需求,索引的好坏直接决定了信息检索系统的成败。
深圳大学计算机与软件学院王海涛等人指出,数十年以来,对于信息检索系统中索引如何构建的研究一直没有中断,它们主要集中在对全局索引(Global Indexing)与局部索引(Local Indexing)及其混合类型(Hybrid Indexing)等结构的比较与探讨。王海涛等人发表在汉斯期刊《软件工程与应用》上的文章,详细介绍并分析了几种索引的特点,以下是论述。
局部索引
局部索引架构将整个数据集分成多个子集,这种划分往往是随机的,或者根据应用的具体情况来进行划分,然后针对各个数据子集来分别建立索引,因此建立的各个索引也相互独立,也就是说,一个检索会被发送到所有索引块上独立执行。且其在数据传递时产生更少的网络流量,数据信息更新时操作也更为方便。局部索引架构的缺点在于检索需要执行K*N次磁盘寻址及数据读取操作。
全局索引
全局索引架构针对整个数据集建立一个全局索引,然后分为多个索引片段,每个片段负责整个关键字集合中的分关键字。索引的划分有一定的策略,不是随机的,标准就是要能够通过中间节点快速判定一个关键字所在的索引片段。全局索引架构在执行一个检索时需要访问的索引片段较少,相比局部索引架构在执行一个检索时具有更低的开销。但它在数据传递时产生更多的网络流量,同时必须将所有的归并操作集中执行。另外,每个数据项(记录、文档等)的关键字信息分布在整个分布式系统之中,与局部索引架构相比,全局索引架构在数据项发生更新时,同步完成对索引的更新难度更大。
混合索引
混合索引架构在检索时兼具全局索引架构和局部索引架构的优点:较小的数据流量、较高的吞吐率、所有的检索都在索引块本地执行、较少的系统开销等等。但它的缺点也十分的明显:高数据冗余需要更多的存储空间,副本数量过多导致对数据项的更新难度更大、开销更高。特别是对一些数据项包含较多检索关键字的应用(如文档检索),数据的冗余度可能高达数百甚至更高,显然,这在实际应用之中不易被接受。
总之,通过前人的研究成果和对实际应用系统的分析,可以看出,当面临大数据规模时,局部索引架构是较好的解决方案。而未来数据规模只会越来越大,所以局部索引架构是首选的分布式索引系统架构解决方案。当数据达到局部索引架构也无法应对的规模时,则应该将两层的索引架构变为三层以满足应用需求。(源于千人智库,eww150320hss)