存储高效、更新优化的事务型全文索引视图维护的方法和系统的制作方法

文档序号:8531881阅读:373来源:国知局
存储高效、更新优化的事务型全文索引视图维护的方法和系统的制作方法
【专利说明】
【背景技术】
[0001]全文索引系统,例如搜索引擎索引算法和文档检索系统,典型地利用倒排索引(或“记入文件”)作为索引数据结构,该索引数据结构存储从内容(例如,词或数字)到数据库文件或文档中位置的映射。倒排索引通常允许快速搜索操作,但当向数据库中增加文档时可能导致更多的处理。通过创建正向索引来形成倒排索引,正向索引存储每个文档的字列表,该正向索引然后被转化以创建倒排索引,倒排索引根据每个字列出文档。由于不需要使用正向索引顺序地重复每个文档和每个字来验证匹配文档,这加速了查询过程。在创建了倒排索引的情况下,可通过经由倒排索引中的随机访问操作跳至字标识符来解决查询。
[0002]对全文索引环境应用更新通常是一项具有挑战性的任务,因为倒排索引是为了快速查询而不是为了更新而设计的。将被删除的条目列入黑名单是一种阻止访问被删除条目的常见技术,并且一般而言比直接更新它们更加高效。也就是说,当被列入黑名单时,被删除对象实质上被虚拟地删除,如同在查询过程中一开始存在但在查询操作完成之前被过滤掉了。一旦(在正常的合并操作期间)索引被重建,物理删除将反映到索引上。需要这个过程是因为对黑名单对象的后查询过滤损害了查询性能。
[0003]这样的方法与被设计为支持低延迟直接更新的典型关系数据库的B-树索引形成对照。更新高效的性能允许关系型B-树索引被用于联机事务处理(OLTP)应用及其它需要低延迟更新的应用。然而,该索引方法的不利之处在于,它不能提供倒排全文索引更高价值的模糊搜索。
[0004]与低延迟事务型数据库系统不同,典型的全文环境在反映更新上具有非常高的延迟。在较旧的静态版本被查询的同时,全文数据库系统收集所有变化并将它们应用到新版本的索引上。这个过程意味着需要花几分钟到几小时的时间来反映和应用更新。结果,为了信息检索应用中所使用的高质量搜索,这些应用牺牲了低延迟更新。
[0005]黑名单位图是一种记录了至少一个不能与服务同时共享资源的服务的位图。事务型查询视图的结构不仅包括确定要使用的一组索引,还包括获取反映最近变换的最新版本的黑名单位图。黑名单位图必须在另一事务完成后重新创建以反映系统的当前变化。在许多情况下,可能只是从永久黑名单结构中重建黑名单位图。然而,在任何特定时间发生大量更新的情况下,由于扫描和使用黑名单项目的列表来创建新的黑名单位图,该过程可能变得代价高得不可接受。
[0006]该黑名单位图的重建可在不同事务的用户之间共享,只要他们的事务型视图本质上相同。然而,读事务开始和结束在不同的时间而写事务可能在这些完成之间发生。这导致了多个并行的读事务具有不同的黑名单位图。这些独特的黑名单位图视图的创建可导致查询花费大约多达一分钟的时间,因为要处理成百上千的黑名单条目来创建该视图。
[0007]因此,需要一种在大量更新的情况下减少维护事务型索引视图开销的改进方法。
【附图说明】
[0008]通过结合附图阅读本说明书,所要求保护的主题的优点对于本领域技术人员来说将是显而易见的,附图中使用相似的参考数字指代相似的元素,并且其中:
[0009]图1是说明可在其中实现本主题的示例硬件设备的模块图;
[0010]图2说明了在实施例下应用更新的示例全文索引环境;
[0011]图3说明了在实施例下在全文索引环境中更新文档的过程;
[0012]图4说明了在实施例下取决于事务行为的文档的不同视图从而说明位图高速缓存方法的操作;
[0013]图5说明了在实施例下单个全局位图高速缓存的使用;
[0014]图6A是说明在实施例下在全文环境中维护索引的方法的流程图;
[0015]图6B是说明在实施例下维护单个黑名单位图的方法的流程图。
【具体实施方式】
[0016]本文介绍的主题提供了一种用于事务型全文索引视图维护的更新优化和存储高效的方法。实施例针对在任何特定时间发生大量更新的情况下减少维护事务型索引视图开销需求的方法和系统。该方法涉及在更新的事务型查询视图间维护单个黑名单位图、当新的视图被请求时将最新的一组更新应用到位图,以及当创建了事务型视图时对位图进行后调整以保证应当可见的条目未被移除。为了获得对全文索引更低延迟的、事务型的更新,使用多索引和黑名单索引条目的组合。对数据库的更新被放在新的倒排索引中并且相应的项目以较旧索引被列入黑名单。当执行查询时,黑名单典型地被转换为允许查询有效地过滤出结果文档(它们呈现为线性文档标识符)的位图并且查询在所有索引间执行。
[0017]在详细描述本主题之前,将首先描述在其中可以实现本主题的示例性硬件设备。本领域普通技术人员将意识到,图1中所示的元件可根据系统实现而变化。参考图1,用于实现本文公开的本主题的示例性系统包括硬件设备100,其包括处理单元102、存储器104、存储设备106、数据输入模块108、显示适配器110、通信接口 112以及将元件104-112耦合到处理单元102的总线114。
[0018]总线114可包括任何类型的总线架构。例子包括存储器总线、外围总线、本地总线等。处理单元102为指令执行机器、装置或设备并且可包括微处理器、数字信号处理器、图形处理单元、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理单元102可被配置为执行存储器104和/或存储设备器106中所存储的和/或经由数据输入模块108所接收的程序指令。
[0019]存储器104可包括只读存储器(ROM) 116和随机存取存储器(RAM) 118。存储器104可被配置为在设备100操作期间存储程序指令和数据。在各种实施例中,例如存储器104可包括多种存储器技术中的任何一种,例如静态随机存取存储器(SRAM)或动态RAM(DRAM),包括各种变型例如双倍数据速率同步DRAM(DDR SDRAM)、纠错码同步DRAM(ECC SDRAM)、或RAMBUS DRAM(RDRAM)。存储器104也可包括非易失性存储器技术例如非易失性闪存RAM(NVRAM)或ROM。在一些实施例中,可以预期存储器104可包括诸如前述技术以及未特别提及的其他技术的组合。当在计算机系统中实现本主题时,ROM 116中存储有基本输入/输出系统(B1S) 120,该基本输入/输出系统包含在例如启动期间有助于计算机系统内的元件之间传输信息的基本例程。
[0020]存储设备106可包括用于从闪存存储器读取或向其写入的闪存存储器数据存储设备,用于从硬盘读取或向其写入的硬盘驱动器,用于从可移除磁盘读取或向其写入的磁盘驱动器和/或用于从可移除光盘例如⑶ROM、DVD或其他光学介质读取或向其写入的光盘驱动器。驱动器和与它们相关的计算机可读介质为硬件设备100提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
[0021]值得注意的是,本文描述的方法可以实施为存储在计算机可读介质中用于由指令执行机器、装置或设备,例如基于计算机的或包含处理器的机器、装置或设备,使用或连同它们使用的可执行指令。本领域技术人员将意识到,对于某
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1