论文部分内容阅读
XML文档具有两个显著的特点,其一:自描述性,存在大量的语义标签描述标签内的文本。这使得XML被广泛的用作描述服务或者数据对象、作为数据交换格式、标注非结构化文档(web页面,纯文本文档等)。其二:可扩展性,灵活的层次结构赋予其良好的可扩展性,因而可以在某些模式结构复杂的数据应用环境中代替关系数据库,以实现数据模式根据需求平滑进化。这些应用在科研和商业领域产生了大量的XML文档。 高效的获取XML文档中的信息面临诸多挑战:XML文档集的存储和索引、XML文档集的查询方式、XML信息检索的评分模型、检索算法以及查询结果粒度选择等等。相对于XQuery/XP ath来说,XML关键词查询是一种简单、高效的用户查询方式,本文针对XML关键词检索中的效率、查询效果相关的若干问题展开研究工作。 第一部分的工作集中在XML关键词查询的效率问题,主要集中在缓冲区管理和任务调度两个方向。对于XML关键词检索中的复杂的索引对象,通过预测其下次引用距离,提出了一个感知查询的复杂对象缓冲区管理策略。任务调度主要是解决不同索引方式下的I/O、CPU资源的平衡利用,以达到系统最大吞吐量。第二部分主要是检索效果问题。从理解XML关键词查询开始,分析数据型XML文档的查询特点,提出融合查询理解的高效评分模型。 (1) XML关键词检索任务调度 存在两种常用的索引策略来索引XML文档集:a)基于文档的索引,表示为索引A;b)基于XML元素的索引,表示为索引B。通过实验分析可知,索引A在查询处理时,CPU计算量大,因而CPU容易成为查询处理的瓶颈。而索引B以牺牲灵活性为代价,在创建索引时预计算了关键词的评分分量,因而查询处理时CPU计算量小。但因为索引占用的磁盘空间大,磁盘I/O容易成为瓶颈。鉴于此种情况,提出一种结合上述两种索引方式的查询处理方案,即平衡I/O和CPU的查询处理。生成两种索引,然后根据系统的运行状态动态调整查询处理的调度,即一部分查询请求使用索引A处理,另一部分查询使用索引B处理,从而达到最大化系统吞吐量的目的。 (2) XML信息检索的缓冲区管理 在XML信息检索方面,大量的研究工作集中在评分模型、查询结果粒度确定、查询修剪算法等,对于XML检索系统的性能有着重要影响的缓冲区管理缺少相应的工作,三个最著名的开源信息检索系统:TopX2.0[Top02](LFU),Lemur/Indri4.10[Lem09](Lemur: LRU,Indri: no cache)和Lucene2.4[Luc08](LRU)或者没有使用缓冲区管理,或者仅仅使用简单的LRU/LFU策略而已。基于这样的认识,提出了感知查询的复杂对象缓冲区管理策略:基于最小重用距离预测的索引对象置换策略。根据XML信息检索系统的运行状态,预测一个索引对象的下次引用距离,置换出那些具有最大重用距离的数据对象。 (3)数据型XML关键词查询理解和评分 XML的结构化查询语言,比如NEXI[Nex07],可以更加清晰地表达了用户的查询意图,因而能够帮助信息检索系统获得更好的检索精度。但关键词查询,因其简单和易用性,仍然是使用最广泛的查询方式。基于这样的认识,提出了一个新的算法,自动推断关键词查询的结构化信息(条件/目标节点类型)。相比于已有的推断算法,综合了XML文档集的模式和统计信息以及关键词查询的隐含信息(关键词出现的上下文,它们之间的关联关系),推断用户的查询意图。 数据型XML的查询结果,基本上都是基于LCA/SLCA及其变体的,尽管这些结果对于“and”语义查询表现出很好的查询精度,但对于通用的XML关键词查询(同时支持“and”和“or”语义),尤其是“or”语义的查询支持较差,甚至无法支持。文献[FLJ+1O]提出了MCCTree(最大的紧凑连接树)的概念,很好的捕获了查询关键词的关联关系,查询精度相对于其他方法获得显著提高。但MCCTree的一个显著缺点是其缺乏对于关键词查询请求的理解和文档集的模式信息的有效利用,由此提出扩展的最大紧凑链接树的概念。然后使用扩展的最大紧凑链接树,在XML文档集的结构摘要树上执行查询,生成查询模板集。以此查询模板集为指导,在XML实例数据集上检索相关的查询结果,并综合查询理解的结果,提出高效评分模型。