CN102760165A - 一种使用位图索引的全文检索方法和装置 - Google Patents

一种使用位图索引的全文检索方法和装置 Download PDF

Info

Publication number
CN102760165A
CN102760165A CN2012101938744A CN201210193874A CN102760165A CN 102760165 A CN102760165 A CN 102760165A CN 2012101938744 A CN2012101938744 A CN 2012101938744A CN 201210193874 A CN201210193874 A CN 201210193874A CN 102760165 A CN102760165 A CN 102760165A
Authority
CN
China
Prior art keywords
bitmap
node
bitmap index
index
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012101938744A
Other languages
English (en)
Other versions
CN102760165B (zh
Inventor
赵伟
郑程光
孙伟丰
罗正海
李泉
李�浩
李书淦
程仁波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Founder Digital Publishing Technology (Shanghai) Co.,Ltd.
Founder Information Industry Holdings Co Ltd
Peking University Founder Group Co Ltd
Original Assignee
FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SHANGHAI) CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SHANGHAI) CO LTD filed Critical FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SHANGHAI) CO LTD
Priority to CN201210193874.4A priority Critical patent/CN102760165B/zh
Publication of CN102760165A publication Critical patent/CN102760165A/zh
Application granted granted Critical
Publication of CN102760165B publication Critical patent/CN102760165B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种使用位图索引的全文检索方法和装置。本发明的技术方案使得现有的XML数据库管理***中的XML数据访问模块可以快速地进行单词的存在性测试,由于全文检索的目标就是要找到含有用户指定的某些单词的节点数据行,所以这种存在性测试是全文检索中最核心和最重要的功能之一,与传统的B+树索引相较而言,本发明的使用位图索引的全文检索方法可以实现更加高效的全文索引,同时,由于使用了位图索引,也在很大程度上显著提高了全文检索的性能。

Description

一种使用位图索引的全文检索方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种使用位图索引的全文检索方法和装置。
背景技术
XML(全称Extensible Markup Language),是一种专门为internet而设计的一种标记语言,且由于其具有有效的表达各种信息、数据和使各种应用协同工作的能力,业已成为数据发布和数据交换的事实标准,因此,XML在近几年得到了发展和广泛的应用。XML的重点不在于数据的形式本身,而在于管理数据信息,因此,XML使得不同数据库模式的统一成为可能,为异构数据库的集成问题提供了途径。
XML数据库管理***(XMLDBMS)是近年来快速发展的一种新型的数据库管理***(DBMS),其用于存储和检索的数据为XML文档,并且支持XML文档的更新操作。随着XML标准被越来越多的行业采纳为数据交换标准,XML数据的管理(包括存储、检索、更新等)需求也保持着持续快速地增长,特别是XML数据库管理***比关系数据库管理***更加适合处理文本类数据和XML文档数据。查询引擎是数据库管理***(数据库管理***)中的核心子***,由于XML是典型的半结构化数据,对XML数据的查询要求不同于传统数据库,在查询时不仅要对数据库中的数值进行查询,而且要对XML文档的结构和数据之间的关系进行查询。
在XML数据库管理***中存储XML文档的实体称为容器,一个容器中存储任意多个XML文档的数据内容,而这个容器由若干个数据表支撑,分别存储这些XML文档的各个方面的数据和结构信息,包括节点数据,节点间关系,路径数据,各种索引,各种统计信息等。数据表存储的单位是数据行,一个数据表中含有若干个数据行,并且可以通过索引快速查找到特定的数据行。数据表中的每一行的位置使用一个TID来标识,一个TID唯一地标识一个数据行并且含有这个数据行在数据表中的地址,这样我们可以用TID找到数据行。
XML文档内容被作为节点数据存储在一个节点表中,在XDM的7种节点中,把属性节点,名字空间节点,文本节点,注释节点和处理指令节点都存放在它们的父亲节点(必然是元素节点)中,因此节点表中只存储元素节点和文档节点。文档节点存储一个XML文档的元数据信息,而文档的内容则存储在这个文档的所有的元素节点中。
随着XML相关技术的深入研究,XML查询已经具备了坚实的技术基础在此基础上,W3CWorldWideWebConsortium于2001年12月提出了XML查询语言规范工作草案-XQuery语言,迄今为止,XQuery语言一直在不断的发展中。XML数据的检索和更新语言是由W3C制定的标准的XQuery和XQueryUpdate。W3C同时制定了XQuery Fulltext标准,作为XML数据库管理***的标准的全文检索语言。为了确保XML数据库管理***的全文检索可以高效地执行,需要一个高效的文本索引来支持全文检索。
发明内容
为解决上述问题,本发明技术方案提供的一种使用位图索引的全文检索方法,适用于XML数据库管理***,包括以下的步骤:
解析XML文档,获取所述XML文档的所有元素节点;
将所述XML文档的所有元素节点存储至一节点表中;
取出所述元素节点的所有文本子节点,并将所有文本子节点拆分成若干个单词,构成一集合;
对所述集合执行停用词过滤,得到有效单词集合;
构建位图索引表;
利用所述位图索引表进行全文检索。
可选地,所述构建位图索引表具体为:根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图,形成所述位图索引表。
可选地,利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
可选地,进一步包括,在所述将所述XML文档的所有元素节点存储至一节点表中的过程中,还进一步包括,为所述位图索引表的每个数据行构建索引键值,具体为:所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象。
可选地,进一步包括:对所述构建的有效单词集合中的各个单词形成的位图执行RLE压缩。
可选地,所述的利用所述位图索引进行全文检索的方法具体为:
在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
可选地,所述解析XML文档,以获取所述XML文档的所有元素节点具体为:将所述XML文档送入SAX模式的XML文档解析器进行解析,以获得所述XML文档的所有元素节点。
本发明还提供了一种使用位图索引的全文检索装置,包括:
文档解析单元,用于解析XML文档,获取所述XML文档的所有元素节点;
节点存储单元,用于将所述XML文档的所有元素节点存储至一节点表中;
文本节点拆分单元,用于取出所述元素节点的所有文本子节点,并对所述文本子节点拆分成若干个单词,构成一集合;
过滤单元,用于对所述集合执行停用词过滤,得到有效单词集合;
索引表构建单元,用于构建位图索引表;
检索单元,用于利用所述位图索引表进行全文检索。
可选地,所述的索引表构建单元具体为:根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图,形成所述位图索引表。
可选地,所述的索引构建单元利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
可选地,所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象。
可选地,进一步包括一压缩单元,所述的压缩单元用于对所述构建的有效单词集合中的各个单词形成的位图执行RLE压缩。
可选地,所述的检索单元进一步包括:
查询字符串拆分单元,用于在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
停用词过滤单元,用于使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
位图查询单元,用于使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
目标位图获取单元,用于对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
可选地,所述的所述的文档解析单元用于将所述XML文档送入SAX模式的XML文档解析器进行解析,以获得所述XML文档的所有元素节点。
与现有技术相比,上述技术方案具有下优点:
本发明的技术方案使得现有的XML数据库管理***中的XML数据访问模块可以快速地进行单词的存在性测试,由于全文检索的目标就是要找到含有用户指定的某些单词的节点数据行,所以这种存在性测试是全文检索中最核心和最重要的功能之一,与传统的B+树索引相较而言,本发明的使用位图索引的全文检索方法可以实现更加高效的全文索引,同时,由于使用了位图索引,也在很大程度上显著提高了全文检索的性能。
附图说明
图1是本发明实施方式的使用位图索引的全文检索方法的流程图;
图2是本发明的实施方式的使用位图索引的全文检索方法中的步骤S6的流程图;
图3是本发明的实施方式的使用位图索引的全文检索装置的组成框架示意图;
图4为本发明的实施方式的使用位图索引的全文检索装置的检索单元的组成框架示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
本领域的技术人员知道,在XML数据库管理***中存储XML文档的实体称为容器,一个容器中存储任意多个XML文档的数据内容,而这个容器由若干个数据表支撑,分别存储这些XML文档的各个方面的数据和结构信息,包括节点数据,节点间关系,路径数据,各种索引,各种统计信息等。数据表存储的单位是数据行,一个数据表中含有若干个数据行,并且可以通过索引快速查找到特定的数据行。数据表中的每一行的位置使用一个TID来标识,一个TID唯一地标识一个数据行并且含有这个数据行在数据表中的地址,这样我们可以用TID找到数据行。
位图其实就是一个位序列,这些位以整数的方式组织起来,比如一个128位的位图通常放置在4个32位整数组成的数组中,或者放置在2个64位整数组成的数组中。位图的每一位为0或者为1可以表示一个事实的真假。一个位图索引中可以含有任意多个位图。由此可见,位图索引可以很好地表达任意数目的存在性事实。
为解决现有技术中的问题,本发明的发明人经过研究,提出了使用位图索引的全文检索方法,可适用于XML数据库管理***,。参阅图1,图1是本发明实施方式的使用位图索引的全文检索方法的流程图。本发明实施方式的使用位图索引的全文检索方法,包括:
首先,进入步骤S1:解析XML文档,并获取所述XML文档的所有元素节点;
其中,优选地,本发明实施方式中的解析XML文档,获取所述XML文档的所有元素节点具体为:将XML文档送入SAX模式的XML文档解析器中,XML文档解析器会通过事件通知的形式让数据库管理***中的查询引擎获得XML文档的所有元素节点数据。
进入步骤S2:将所述XML文档的所有元素节点存储至一节点表中;
其中,本步骤的执行与现有技术中的XML数据库管理***中的机制同理,XML数据库管理***中的查询引擎在文本节点所属的元素节点解析结束时刻会得到XML解析器的SAX事件通知,查询引擎处理SAX事件的方法是调用存储引擎的数据行存储方法,把所述元素节点数据存储到节点表中,从而完成本步骤的执行。
另外,在本发明的一个优选的实施方式中,在所述将所述XML文档的所有元素节点存储至一节点表中的过程中,还进一步包括,在将数据行存储在所述节点表的过程中,为所述位图索引表的每个数据行构建索引键值,具体为:所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象,该对象含有索引键在htup数据行中的起始偏移和长度。得到了IndexKeyRange我们就可以把htup中的索引键值部分取出来作为索引键值。这样,在将一个数据行存储至所述节点表的过程中,通过依次调用所有位图索引表的IndexBuilder函数,依次为每一个位图索引表构建索引键值并且把索引键值(TID)作为一个索引数据行存储到位图索引表中。
进入步骤S3:取出所述元素节点的所有文本子节点并将所有文本子节点拆分成若干个单词,构成一集合;
进入步骤S4:对所述集合执行停用词过滤,得到有效单词集合;
其中,在前一步骤中,拆分出的文本子节点的单词中含有在查询或者检索时不具有意义的停用词,因此,为了提高检索的效率,需要进入本步骤,将停用词进行过滤,从而得到有效单词集合。
进入步骤S5:构建位图索引表;
其中,优选地,在本发明的实施方式中,根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图,形成一位图索引表;
其中,利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
对有效集合中的每一个单词而言,由于这些单词存在于节点表的相应的数据行中,因此,有效集合中的每个单词的第i位会被设置为1(i=TID.block*M+TID.offset)。通过计算上述的两个变量值block和offset,就完成了将每个单词的位图中第i位映射到一个节点表的一个数据行的目标。
需要指出的是,当一个节点数据内容被更新时,为了性能考虑可以不去除那些原来指向这个节点数据行的位图索引。这样,当我们得到一个节点时,还需要进一步在其中做分词,并且查找目标单词。但是,由于避免了在一个容器的节点表中的大量的节点中查找目标单词,可以以较低的代价得到所有含有目标单词的节点数据行,因而加速了全文检索的效率的同时,降低了操作成本。
另外,由于在位图索引表中,文档容器存储的所有文档的每一个单词都对应一个位图,每个单词的位图的每一位对应于一个或者0个节点数据行,其中,1则表示这个单词存在于节点数据行中;0则表示该单词不存在于该数据行中。因此,采用上述的方式存储的位图中可能会出现大量连续的0位和1位。为了进一步提高全文检索的性能,对于每个单词的位图执行RLE(Run Length Encoding)压缩,这样,存储在位图索引表中的位图就是经过RLE压缩后的位图。
进入步骤S6:利用所述位图索引表进行全文检索。
参见图2,图2示出了利用位图索引表进行全文检索的具体流程图。利用位图索引表进行全文检索的具体流程具体为:
在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
在利用上述形成位图索引表进行xquery fulltext查询时,将查询条件字符串做分词,得到查询条件中的每个单词,而后,通过使用默认的停用词表过滤后,得到有效查询单词集合。把有效查询集合中的单词依次使用位图索引表查询得到苦干个位图。根据查询条件的不同,有效查询单词集合中的单词之间的逻辑关系也即是这些单词的位图之间的运算关系。对这些位图执行逻辑运算得到最终的位图,也就是最终符合全文检索条件的节点数据行的TID集合。由于,数据表中的每一行的位置使用一个TID来标识,一个TID唯一地标识一个数据行并且含有这个数据行在数据表中的地址,因此可以用TID找到相应的数据行,从而完成全文检索的目标。
例如,有效查询单词集合={“英语”,“教师”},其中的“英语”和“教师“两个单词之间的逻辑关系是与,也即是查询同时含有“英语”和“教师”两个单词的XML元素节点。所以查询引擎就从位图索引表中获取”英语”和”教师”两个单词的位图,然后把”英语”和”教师”两个单词的位图做“与”操作,得到最终的位图,这个位图中为1的位对应的数据行就是同时含有”英语”和”教师”两个单词的节点数据行。
参阅图3,图3示出了本发明实施方式的使用位图索引的全文检索装置,包括:
文档解析单元110,用于解析XML文档,获取所述XML文档的所有元素节点;其中,所述的文档解析单元110用于将所述XML文档送入SAX模式的XML文档解析器进行解析,以获得所述XML文档的所有元素节点。
节点存储单元120,用于将所述XML文档的所有元素节点存储至一节点表中;
文本节点拆分单元130,用于取出所述元素节点的所有文本子节点,并对所述文本子节点拆分成若干个单词,构成一集合;
过滤单元140,用于对所述集合执行停用词过滤,得到有效单词集合;
索引表构建单元150,用于构建位图索引表;所述的索引表构建单元具150体为利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
其中的所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象。
另外,由于在位图索引表中,文档容器存储的所有文档的每一个单词都对应一个位图,每个单词的位图的每一位对应于一个或者0个节点数据行,其中,1则表示这个单词存在于节点数据行中;0则表示该单词不存在于该数据行中。因此,采用上述的方式存储的位图中可能会出现大量连续的0位和1位。为了进一步提高全文检索的性能,索引构建单元150还进一步包括一压缩单元,用于对各个单词的位图执行RLE(Run Length Encoding)压缩,这样,存储在位图索引表中的位图就是经过RLE压缩后的位图。
检索单元160,用于利用所述位图索引表进行全文检索。其中,所述的检索单元进一步包括:
参阅图4,图4示出了本发明中的检索单元160进一步包括:
查询字符串拆分单元160a,用于在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
停用词过滤单元160b,用于使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
位图查询单元160c,用于使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
目标位图获取单元160d,用于对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
综上所述,本发明的技术方案具有如下的优点:
本发明的技术方案使得现有的XML数据库管理***中的XML数据访问模块可以快速地进行单词的存在性测试,由于全文检索的目标就是要找到含有用户指定的某些单词的节点数据行,所以这种存在性测试是全文检索中最核心和最重要的功能之一,与传统的B+树索引相较而言,本发明的使用位图索引的全文检索方法可以实现更加高效的全文索引,同时,由于使用了位图索引,也在很大程度上显著提高了全文检索的性能。
应当理解的是这里所描述的方法和***可以以各种形式的硬件、软件、固件、专用处理机或者它们的组合实现。尤其是,至少本发明的一部分包括程序指令的应用程序优选实现。这些程序指令被确实地包括在一个或者多个程序存储设备(包括但不限于硬盘,磁性软盘,RAM,ROM,CD,ROM等)里,并且可由任何包括适当结构的设备或者机器,例如一种具有处理器、内存和输入/输出接口的通用数字计算机执行。还应当理解由于附图中描述的一些***的组成部件和处理步骤优选地以软件实现,所以,***模块(或者方法步骤的逻辑流程)之间的连接可能不同,这取决于本发明的编程方式。根据这里给出的指导,相关领域的普通技术人员将能够设计出本发明的这些以及类似的实施方式。
以上公开了本发明的多个方面和实施方式,本领域的技术人员会明白本发明的其它方面和实施方式。本发明中公开的多个方面和实施方式只是用于举例说明,并非是对本发明的限定,本发明的真正保护范围和精神应当以权利要求书为准。

Claims (14)

1.一种使用位图索引的全文检索方法,适用于XML数据库管理***,其特征在于,包括以下的步骤:
解析XML文档,获取所述XML文档的所有元素节点;
将所述XML文档的所有元素节点存储至一节点表中;
取出所述元素节点的所有文本子节点,并对所述文本子节点拆分成若干个单词,构成一集合;
对所述集合执行停用词过滤,得到有效单词集合;
构建位图索引表;
利用所述位图索引表进行全文检索。
2.如权利要求1所述的使用位图索引的全文检索方法,其特征在于,所述构建位图索引表具体为:根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图,形成所述位图索引表。
3.如权利要求2所述的使用位图索引的全文检索方法,其特征在于,利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
4.如权利要求1所述的使用位图索引的全文检索方法,其特征在于,在所述将所述XML文档的所有元素节点存储至一节点表中,还进一步包括,在将数据行存储在所述节点表的过程中,为所述位图索引表的每个数据行构建索引键值,具体为:所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象。
5.如权利要求1所述的使用位图索引的全文检索方法,其特征在于,进一步包括:对所述构建的有效单词集合中的各个单词形成的位图执行RLE压缩。
6.如权利要求1所述的使用位图索引的全文检索方法,其特征在于,所述的利用所述位图索引进行全文检索的方法具体为:
在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
7.如权利要求1所述的使用位图索引的全文检索方法,其特征在于,所述解析XML文档,以获取所述XML文档的所有元素节点具体为:将所述XML文档送入SAX模式的XML文档解析器进行解析,以获得所述XML文档的所有元素节点。
8.一种使用位图索引的全文检索装置,其特征在于,包括:
文档解析单元,用于解析XML文档,获取所述XML文档的所有元素节点;
节点存储单元,用于将所述XML文档的所有元素节点存储至一节点表中;
文本节点拆分单元,用于取出所述元素节点的所有文本子节点,并对所述文本子节点拆分成若干个单词,构成一集合;
过滤单元,用于对所述集合执行停用词过滤,得到有效单词集合;
索引表构建单元,用于构建位图索引表;
检索单元,用于利用所述位图索引表进行全文检索。
9.如权利要求8所述的使用位图索引的全文检索装置,其特征在于,所述的索引表构建单元具体为:根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图,形成所述位图索引表。
10.如权利要求9所述的使用位图索引的全文检索装置,其特征在于,所述的索引构建单元利用下述的公式根据所述有效单词集合中的各个单词与所述节点表的数据行之间的映射关系构建所述有效单词集合中的各个单词的位图:
block=i/M;
offset=i%M;
其中,TID为节点表中的数据行的地址,表示成为(block,offset),M为一个数据页中可存储的数据行数目的最大值,i表示每个单词的位图中的位置。
11.如权利要求8所述的使用位图索引的全文检索装置,其特征在于,所述位图索引表具有一回调函数,所述回调函数负责为所述位图索引表的每个数据行构建索引键值;
所述回调函数为:
IndexKeyRange IndexBuilder(HeapTuple htup,Relation heap,Relation index);
其中,所述htup为所述节点表的数据行,heap和index是所述节点表和所述位图索引表的句柄对象,返回值为IndexKeyRange类型的对象。
12.如权利要求8所述的使用位图索引的全文检索装置,其特征在于,进一步包括一压缩单元,所述的压缩单元用于对所述构建的有效单词集合中的各个单词形成的位图执行RLE压缩。
13.如权利要求8所述的使用位图索引的全文检索装置,其特征在于,所述的检索单元进一步包括:
查询字符串拆分单元,用于在xquery fulltext查询时,将其中的查询条件字符串拆分成若干单词;
停用词过滤单元,用于使用默认的停用词表过滤上述的若干单词,得到有效的查询单词集合;
位图查询单元,用于使用位图索引表依次查询有效单词集合中的单词得到若干个位图;
目标位图获取单元,用于对所述的若干位图执行符合查询条件的目标逻辑运算得到最终的位图,也即得到最终符合全文检索条件的节点数据行的TID集合。
14.如权利要求8所述的使用位图索引的全文检索装置,其特征在于,所述的文档解析单元用于将所述XML文档送入SAX模式的XML文档解析器进行解析,以获得所述XML文档的所有元素节点。
CN201210193874.4A 2012-06-12 2012-06-12 一种使用位图索引的全文检索方法和装置 Expired - Fee Related CN102760165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210193874.4A CN102760165B (zh) 2012-06-12 2012-06-12 一种使用位图索引的全文检索方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210193874.4A CN102760165B (zh) 2012-06-12 2012-06-12 一种使用位图索引的全文检索方法和装置

Publications (2)

Publication Number Publication Date
CN102760165A true CN102760165A (zh) 2012-10-31
CN102760165B CN102760165B (zh) 2014-09-03

Family

ID=47054622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210193874.4A Expired - Fee Related CN102760165B (zh) 2012-06-12 2012-06-12 一种使用位图索引的全文检索方法和装置

Country Status (1)

Country Link
CN (1) CN102760165B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281584A (zh) * 2013-07-02 2015-01-14 北大方正集团有限公司 Xml数据库性能测试***及方法
CN104346331A (zh) * 2013-07-23 2015-02-11 北大方正集团有限公司 Xml数据库的检索方法及***
CN104346332A (zh) * 2013-07-23 2015-02-11 北大方正集团有限公司 Xml数据库全文检索方法及***
CN104572828A (zh) * 2014-12-08 2015-04-29 中国科学院信息工程研究所 一种基于空间位图模型的辅助索引方法及***
WO2017096892A1 (zh) * 2015-12-07 2017-06-15 百度在线网络技术(北京)有限公司 索引构建方法、查询方法及对应装置、设备、计算机存储介质
CN108182209A (zh) * 2017-12-18 2018-06-19 ***通信集团广东有限公司 一种数据索引方法、及设备
CN108932738A (zh) * 2018-07-03 2018-12-04 南开大学 一种基于字典的位片索引压缩方法
CN114547380A (zh) * 2022-01-25 2022-05-27 北京元年科技股份有限公司 数据遍历查询方法、装置、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1605081A (zh) * 2001-12-17 2005-04-06 Zih公司 Xml打印机***
CN101464854A (zh) * 2007-12-18 2009-06-24 金宝电子(上海)有限公司 使用xml以组合码表示字符的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1605081A (zh) * 2001-12-17 2005-04-06 Zih公司 Xml打印机***
CN101464854A (zh) * 2007-12-18 2009-06-24 金宝电子(上海)有限公司 使用xml以组合码表示字符的方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281584A (zh) * 2013-07-02 2015-01-14 北大方正集团有限公司 Xml数据库性能测试***及方法
CN104346331A (zh) * 2013-07-23 2015-02-11 北大方正集团有限公司 Xml数据库的检索方法及***
CN104346332A (zh) * 2013-07-23 2015-02-11 北大方正集团有限公司 Xml数据库全文检索方法及***
CN104572828A (zh) * 2014-12-08 2015-04-29 中国科学院信息工程研究所 一种基于空间位图模型的辅助索引方法及***
CN104572828B (zh) * 2014-12-08 2018-01-19 中国科学院信息工程研究所 一种基于空间位图模型的辅助索引方法及***
WO2017096892A1 (zh) * 2015-12-07 2017-06-15 百度在线网络技术(北京)有限公司 索引构建方法、查询方法及对应装置、设备、计算机存储介质
CN108182209A (zh) * 2017-12-18 2018-06-19 ***通信集团广东有限公司 一种数据索引方法、及设备
CN108932738A (zh) * 2018-07-03 2018-12-04 南开大学 一种基于字典的位片索引压缩方法
CN108932738B (zh) * 2018-07-03 2022-08-16 南开大学 一种基于字典的位片索引压缩方法
CN114547380A (zh) * 2022-01-25 2022-05-27 北京元年科技股份有限公司 数据遍历查询方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN102760165B (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN102760165B (zh) 一种使用位图索引的全文检索方法和装置
CN107402990B (zh) 一种分布式NewSQL数据库***和半结构化数据储存方法
CN104915450A (zh) 一种基于HBase的大数据存储与检索方法及***
CN101739436B (zh) 基于xml的柔性数据迁移方法
CN104750681A (zh) 一种海量数据的处理方法及装置
CN103955538B (zh) HBase数据持久和查询方法及HBase***
CN104021145A (zh) 一种混合业务并发访问的方法和装置
WO2014066816A1 (en) Systems and methods for intelligent parallel searching
CN110109910A (zh) 数据处理方法及***、电子设备和计算机可读存储介质
WO2021179722A1 (zh) Sql语句解析方法、***、计算机设备和存储介质
CN104391908B (zh) 一种图上基于局部敏感哈希的多关键字索引方法
CN103646079A (zh) 一种用于图数据库搜索的分布式索引及其并行生成方法
CN102819585A (zh) 一种xml数据库文档控制方法
CN102955843A (zh) 一种键值数据库的多键查找实现方法
CN112687364B (zh) 一种基于Hbase的医疗数据管理方法及其***
CN103455335A (zh) 一种多级分类的Web实现方法
CN103198136A (zh) 一种基于时序关联的个人电脑文件查询方法
US10482087B2 (en) Storage system and method of operating the same
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN103473444A (zh) 一种基于智能解析数据结构的电子病历***及其处理方法
CN106933824A (zh) 在多个文档中确定与目标文档相似的文档集合的方法和装置
JP2011008451A (ja) キー・バリュー・ストアによるデータベース・キャッシュ装置
CN102768672B (zh) 一种磁盘空间管理方法和装置
CN101916260A (zh) 一种灾害本体和关系数据库间语义映射构建的方法
CN102760164A (zh) 一种关系数据库管理***与xml数据库管理***之间数据交换的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHANGHAI FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SH

Effective date: 20130108

Owner name: BEIDA FANGZHENG GROUP CO. LTD.

Free format text: FORMER OWNER: SHANGHAI FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SHANGHAI) CO., LTD.

Effective date: 20130108

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201203 PUDONG NEW AREA, SHANGHAI TO: 100871 HAIDIAN, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20130108

Address after: 100871 Beijing, Haidian District into the house road, founder of the building on the 5 floor, No. 298

Applicant after: Peking Founder Group Co., Ltd.

Applicant after: Founder Digital Publishing Technology (Shanghai) Co.,Ltd.

Address before: 201203, No. 608, midsummer Road, Zhangjiang hi tech park, Shanghai, Pudong New Area

Applicant before: Founder Digital Publishing Technology (Shanghai) Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: FOUNDER INFORMATION INDUSTRY HOLDING CO., LTD. FOU

Free format text: FORMER OWNER: FOUNDER DIGITAL PUBLISHING TECHNOLOGY (SHANGHAI) CO., LTD.

Effective date: 20130913

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20130913

Address after: 100871 Beijing, Haidian District into the house road, founder of the building on the 5 floor, No. 298

Applicant after: Peking Founder Group Co., Ltd.

Applicant after: Founder Holdings Company Limited (Founder Holdings)

Applicant after: Founder Digital Publishing Technology (Shanghai) Co.,Ltd.

Address before: 100871 Beijing, Haidian District into the house road, founder of the building on the 5 floor, No. 298

Applicant before: Peking Founder Group Co., Ltd.

Applicant before: Founder Digital Publishing Technology (Shanghai) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140903

Termination date: 20170612

CF01 Termination of patent right due to non-payment of annual fee