论文部分内容阅读
全文检索系统所面对的数据集通常是不断增长的大量文本集,为了及时处理新增的文档以满足用户的实时检索需求,高效的在线倒排索引更新策略显得尤为重要。现有的倒排索引更新策略一般都是基于传统磁盘(Hard Disk Drive,简称HDD)的特性而设计的,相比高速的CPU,磁盘的低速I/O成为制约系统性能的主要瓶颈。新型存储设备固态硬盘(Solid State Disk,简称SSD)相对于机械磁盘HDD而言,最显著的优点就是其高速随机存取能力。如能正确使用SSD取代磁盘来存储全文检索系统的倒排索引数据,将使得系统的综合性能大大提升。然而SSD具有一些完全不同于HDD的特性,若直接采用现有的索引更新策略来维护SSD上的倒排索引,不仅不能充分发挥SSD的优势,还会影响其使用寿命。首先通过实验考察了现有的索引更新策略在SSD上的综合表现,分析了它们在SSD上的不适用性:单纯的原地更新策略产生过多的随机写;基于合并的方法则产生大量额外的、意义并不大的写操作,给SSD造成过多的负荷与损耗。在实验分析的结果之上,提出了设计适用于SSD的索引策略应遵循的原则。然后,设计了一种基于SSD的混合式索引更新策略。该策略充分利用SSD的高速随机读和较为高效的半随机写特性,将所有词条根据其倒排列表的长度分为长词和短词两大类,分别采取原地更新和不合并更新策略,既避免了效率低下的小数据随机写,又不产生合并导致的过多额外写操作。与以往方法相比,实验评估证明该策略具有很好的索引更新与检索性能,且对SSD的损耗大大减少。最后,为进一步提高策略的有效性,提出在执行多次原策略后,穿插执行一次优化策略:长词索引仍原地更新,短词索引则进行合并,同时让部分中长词索引驻留内存。实验表明,优化策略能够在保证系统索引更新效率不降低的前提下,使检索性能提升32.1%,同时并不会对SSD造成过多影响。