Xml数据库全文检索方法及系统的制作方法

文档序号:6506311阅读:221来源:国知局
Xml数据库全文检索方法及系统的制作方法
【专利摘要】本发明提供了一种XML数据库全文检索方法及系统,该方法包括:在XML数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键;在进行查询时,利用所述字符串引用与其对应的词汇表。利用本发明,可以使用户根据自身应用需求来扩展和定制全文检索运行方式。
【专利说明】XI数据库全文检索方法及系统

【技术领域】
[0001]本发明涉及数据库【技术领域】,具体而言,涉及一种XII数据库全文检索方法及系统。

【背景技术】
[0002]X见数据库管理系统是近年来快速发展的一种新型的数据库管理系统(0813),它存储和检索的数据是XII文档,并且支持更新XII文档。由于存储和检索的是XII文档,所以X见0813常常被用作文档数据库,全文检索就是X见数据库管理系统的一个重要功能。
[0003]X见数据的检索和更新语言是由13(:制定的标准的糾1161~7和糾1161~7邱(1社6。130同时制定了父如61~7标准,作为X祖1)813的标准的全文检索语言。父如61~7?11111:6^1:标准制定了在^如61~7 ?11111:6^1:查询中使用任意的停用词(31:01^0:^(18)、词汇关系(111685111:^118)和词根化(义一臟丨叩)词汇表的机制。
[0004]8^0^01-(18词汇表的作用是在全文检索过程中忽略非常常用的单词,比如冠词,助词,语气词,介词等等,因为这些词在大多数文本中都存在,失去了索引的意义和价值;这些词被列在一个31:0押01(18词汇表中,做分词和全文检索的词语匹配时,就忽略这些单词,认为它们与任何单词都匹配。
[0005]111688111-118词汇表的作用是定义词汇之间的关系,比如词汇关系,词汇意义的扩展或者缩小关系,常用与不常用关系等,以便在查找一个词的时候也可以找到含有与之有指定关系的其他词语的文本。
[0006]义6臟1!18词汇表的作用是在英语等西文语言中作词根匹配,只要两个单词有相同的词根,就可以认为它们相等,虽然他们在字面上并不相同。比如英文中的如加和(101=8在启用词根化选项时是相同的单词。
[0007]然而,上述111688111-118和31:61111111118词汇表的机制显然不适用于中文。


【发明内容】

[0008]本发明提供一种XII数据库全文检索方法及系统,可以使用户根据自身应用需求来扩展和定制全文检索运行方式。
[0009]为此,本发明实施例提供如下技术方案:
[0010]一种XII数据库全文检索方法,所述方法包括:
[0011]在XII数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键;
[0012]在进行查询时,利用所述字符串引用与其对应的词汇表。
[0013]优选地,所述方法还包括:
[0014]接收用户设定的词汇关系名称,并在词汇关系词汇表中使用所述词汇关系名称定义词汇关系;
[0015]根据所述词汇关系词汇表生成所述词汇关系元数据表。
[0016]优选地,所述方法还包括:
[0017]根据用户注册的词根化词汇表生成所述词根化元数据表。
[0018]优选地,所述方法还包括:
[0019]接收用户注册的一个或多个专业词汇表;
[0020]根据所述专业词汇表生成所述中文分词元数据表。
[0021]优选地,所述字符串为统一资源定位符字符串。
[0022]优选地,所述方法还包括:
[0023]在进行全文查询时,如果启用了词根化词汇表,则先获取用户查询语句中的关键词和XII节点数据行中的关键词这两个关键词的词根,然后比较这两个词根是否相同。
[0024]优选地,所述方法还包括:
[0025]如果启用了词根化词汇表,并且需要查询全文索引表,则将词根化词汇表中的每个词都去查询全文索引表,得到多个数据行标识110位图;
[0026]对所述多个110位图做或运算,得到符合全文检索条件的节点集合。
[0027]一种XII数据库全文检索系统,所述系统包括:
[0028]设置单元,用于在XII数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键;
[0029]查询单元,用于在进行查询时,利用所述字符串引用与其对应的词汇表。
[0030]优选地,所述系统还包括:
[0031]接收单元,用于接收用户设定的词汇关系名称,和/或接收用户注册的一个或多个专业词汇表;
[0032]所述设置单元,具体用于在词汇关系词汇表中使用所述词汇关系名称定义词汇关系,并根据所述词汇关系词汇表生成所述词汇关系元数据表;根据用户注册的词根化词汇表生成所述词根化元数据表;根据所述专业词汇表生成所述中文分词元数据表。
[0033]优选地,所述查询单元在进行全文查询时,如果启用了词根化词汇表,则先获取用户查询语句中的关键词和XII节点数据行中的关键词这两个关键词的词根,然后比较这两个词根是否相同。
[0034]优选地,所述系统还包括:
[0035]所述查询单元,在启用了词根化词汇表,并且需要查询全文索引表时,将词根化词汇表中的每个词都去查询全文索引表,得到多个数据行标识110位图;对所述多个110位图做或运算,得到符合全文检索条件的节点集合。
[0036]本发明实施例提供的XII数据库全文检索方法及系统,本发明实施例的方法可以使从;1161~7的全文检索功能更加灵活、完备和可定制,使语料库的管理和使用变得高效,稳定、可靠;特别是可以动态配置的中文分词库的使用,大大提高了中文全文检索的精准度、灵活性和智能性。可扩动态配置的06臟1叩词库,因此可以使X祖^813不依赖任何人类语言的语言学特征完成词根化,保持X见0813全文检索内核的独立性和语言无关性。本发明实施例的方法还可以灵活地自定义词汇间关系,以便在全文检索中充分发挥人类语言的灵活性。

【专利附图】

【附图说明】
[0037]图1是本发明实施例XII数据库检索方法的流程图;
[0038]图2是本发明实施例XII数据库检索系统的一种结构示意图;
[0039]图3是本发明实施例XII数据库检索系统的另一种结构示意图。

【具体实施方式】
[0040]下面将参考附图并结合实施例,来详细说明本发明。
[0041]现有系统的31:01)恥!'(18和1116851111*118词汇表是内建的,不可配置,并且它们的义6臟1!18词汇表是使用固定的程序算法实现的,因此需要针对每种自然语言实现不同的算法,灵活性和准确性较低,而且不适合中文语言。
[0042]为此,本发明实施例通过在系统中实现对这三种资源的配置,并且让用户可以在查询中选择使用他配置的词库来增强系统处理所有自然语言的灵活性。
[0043]对于全文检索的需求来说,特别是中文的全文检索需求来说,标准的X如60?1111丨以丨定义的功能还很不完整。首先,中文分词需要中文词库支持,但是词库根据文本内容不同,可能需要很多种,比如日常用语词库,各种科学技术专业词库,例如生物学专业词库,医疗专业词库,化学化工专业词库等等。中文分词库的作用是根据词库中的词汇进行字符切割以便把一个中文字符串切分为合乎语境语义的若干个词语。由于在各种专业词库中有大量专业词汇,这些词汇在日常生活中极少出现;甚至在不同的组合方式下可以分出不同意义的词语集合,导致同一份文本在使用不同的专业词库时可以得到完全不同的分词结果。所以需要为专业文本使用正确的专业词库以便准确分割出该专业的词汇。
[0044]另外,^如61~7 ?11111:6X1:标准中的31:6臟1118词汇表和1116851111*118词汇表不够灵活。
[0045]为此,本发明实施例提出了一套统一的基于动态语料库的乂01161~7全文检索扩展机制,它包括对语料库的管理和使用;以及在从;1161~7 “6X1:现有的使用81:0^01-(18和1116851111*118词汇表的基础上,使用中文分词词汇表,81:6111111111?词汇表和可以扩展的1116851111*118词汇表。
[0046]如图1所示,是本发明实施例XII数据库全文检索方法的流程图,包括以下步骤:
[0047]步骤101在XII数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键;
[0048]步骤102,在进行查询时,利用所述字符串引用与其对应的词汇表。
[0049]在本发明实施例中,上述四种词汇表分别存储在对应的词库中,即31:0^01^8词库、1116821111*118词库、中文分词词库、3丨6臟1118词库。这些词库统称为语料库,它们都是让用户根据自身应用需求来扩展和定制全文检索运行方式的工具。
[0050]上述四种语料库分别存储在31:0押01(18元数据表、1116821111*118元数据表、中文分词元数据表、和31:61111111118元数据表中。也就是说,元数据表中存储着00押1:11688111-118/中文词汇表这几种语料,组成了语料库。其中,每一个表是一个独立的系统元数据表。在查询语句中有对某种语料库的词汇表的引用时,就查询对应的元数据表来解析和使用词汇表。
[0051]进一步地,为了准确地完成对任意人类语言的词根化(31:61111111118),不在数据库管理系统内核实现中依赖于语言本身的特征完成词根化,而是让用户注册3仏臟1!18词汇表,用于指定多个单词的词根,这样X祖^数据库管理系统内核完全不需要理解所处理的语言的语言学特征。这样做可以让X肌^数据库管理系统脱离对其所存储的文本的人类语言特征的依赖,以便统一地准确地处理任何一种人类语言文字。
[0052]同时为了准确地完成专业性强的中文文本的分词,本发明实施例还提出在X祖^数据库管理系统中让用户可以注册任意多个中文专业词汇表到)011数据库管理系统中,在使用XIII数据库管理系统时用户可以动态地选择使用某一个专业词汇表来完成中文分词。
[0053]另外,本发明实施例中,还可以由用户在1116821111*118标准定义的2,现,81,阶,816, 81?,阶?,II,奶”几种词汇关系之外,定义任意的词汇关系,比如反义词(可以缩写为八3价0等,只要在1116821111*118词汇表中使用这种词汇关系名称即可。然后在
?11111^6X1:查询语句中就可以指定这种词汇关系。
[0054]存储上述四种语料库的元数据表中每一行以一个字符串为主键,这个字符串通常是一个统一资源定位符⑶此)字符串以确保唯一性;在糾1161~7查询中,就使用这个字符串来引用一个词汇表。一个词汇表作为一个字符串构成一个数据行,整体存储在对应的元数据表中。由于这四种词汇表的内容通常并不很大(即使一百万字的词汇表也只有2-318的数据量),所以这样做没有任何问题。当X㈨61*7而11仏#中出现了对词汇表(即语料)的引用(其形式为社^ 111-1字符串”,是糾1161~7定义的)时,口此字符串被用作查询条件,在对应的语料库的元数据表中查找目标词汇表。目标词汇表从元数据表中取出来后,被按照各自所需的方式解析出来并且装入内存数据结构中以完成快速的查询操作。
[0055]要使用一个31:61111111118词汇表时,用户需要在查询语句中指定“仍丨叩^仏臟丨呢社II尺[”的形式。其中“社III化”这部分是可选的,是本发明实施例对乂01161~7语言的扩展。X祖1)813系统默认使用系统内置的英语的义61111111118词汇表。用户可以注册任意的3七6臟1!18词汇表,并且在使用中用一个唯一的字符串(通常是现0来标识即可。
[0056]使用一个31:61111111118词汇表的方式是将一组词与它们的词根组织成一个整体,构成一个8丨6臟1118词组。做全文检索时如果启用了 3丨6臟1118词汇表,则在做关键词比较时,先找到需要比较的两个关键词(即用户查询语句中的关键词和X祖^数据库中存储的X祖^节点数据行中的关键词)的词根,然后比较词根是否相同。如果相同,则认为比较的两个关键词相同。
[0057]如果要查询全文索引,那么查询引擎将义6臟1118词组中的每个词都去查询全文索引表得到若干个110 (1^16 1(1,数据行标识)格式的位图,然后对这些110格式的位图做或运算,即可得到符合全文检索条件的节点集合。110是数据行的位置编码,110位图就是将这些编码以位图的形式存储起来。得到了 110位图,就相当于得到了含有目标数据的数据行的位置,也就意味这查找到了结果。
[0058]所述全文索引表是用于高效地检索含有目标关键词的数据行。它以关键词为键值,以110为值,数据库系统用该110可以得到目标数据行。在插入一行数据时,系统会对该数据做分词,得到一串关键词,然后将这些关键词以及这个数据行的110构成若干条索引数据行(每行一个关键词),插入全文索引表中,以便查询时能够用其中任何一个关键词找到该数据行。
[0059]现有技术对文档的检索通常没有这么细的粒度,通常只能找到含有目标关键词的段落,并且针对的是文本文件。本发明实施例可以定位到XII节点级别,针对XII数据进行检索。
[0060]要使用一个中文分词词汇表时,用户需要在其连接会话中用这个词汇表的标识字符串来引用这个词汇表,将它设置为本次连接期间使用的中文分词词汇表。设置之后,这个词汇表被X见0813从中文分词词库这个元数据表中查询出来,并且其中的词语被设置到乂110813系统内部的中文分词器对象中。中文分词器在插入XII文档时就使用这些词语对文本节点的字符串做分词以便构建全文索引表的键值,以及在执行全文检索时对查询字符串做中文分词。在一次连接期间用户可以多次改变该设置,以便在一次连接期间完成对多种专业文本的分词。
[0061]^01161-7标准使用的1116851111*118的词汇关系是由1302788定义的(见匕七如..11观I ^3.01-^/11^/^1)81:11-^1111-1:6^1:-10/^180-2788),它定义的词语间关系包括 113£,皿,81,町,816, ^16, 81?,町?,II,町。在让68仙1~118词汇表中指定词汇间关系的格式是:恥!'己1\七诎[八丁例如”1110111 ^82皿1111”。用户可以在诎[八丁10吧!!1?这个部分使用任意一个由26个字母组成的字符串代表某种自定义的词语间关系。在全文检索查询语句中,像使用其他标准的关系字符串一样的方式来指定这个关系字符串即可找到与指定单词有指定关系的词语。
[0062]在实现层面,以关系字符串和恥!'(11为条件来查询得到肌也就是与恥!'(11具有指定关系的词语。比如可以这样指定”10^6”与”1!社6”两个单词的反义词关系:”1抓6八 3抓匕&七一”,并且这个词汇关系注册在名 %?9 //^^1.00111/ (16^81111:/1:116851111*118”的1:116851111*118词汇表中。这样在全文检索语句中可以这样指定1:116851111*118选项:,,⑶I11:81118 1^6X1: “ 1(^6,,118111? 1:11688111~118 3,100111/(16^81111:/
1:11688111-118 1-01^1:101181111)八3抓”,这样就可以使用这个词汇关系找到所有含有与” 1?^6 ”反义的词语的那些文本。
[0063]本发明实施例的方法可以使从;1161~7的全文检索功能更加灵活、完备和可定制,使语料库的管理和使用变得高效,稳定、可靠;特别是可以动态配置的中文分词库的使用,大大提高了中文全文检索的精准度、灵活性和智能性。可扩动态配置的#6皿1118词库,因此可以使X见0813不依赖任何人类语言的语言学特征完成词根化,保持X见0813全文检索内核的独立性和语言无关性。本发明实施例的方法还可以灵活地自定义词汇间关系,以便在全文检索中充分发挥人类语言的灵活性。
[0064]相应地,本发明实施例还提供一种X见数据库全文检索系统,如图2所示,是该系统的一种结构示意图。
[0065]在该实施例中,所述系统包括:
[0066]设置单元201,用于在XII数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键;
[0067]查询单元202,用于在进行查询时,利用所述字符串引用与其对应的词汇表。
[0068]如图3所示,是本发明实施例XII数据库全文检索系统的另一结构示意图。
[0069]与图2所示实施例不同的是,在该实施例中,所述系统还包括:接收单元203,用于接收用户设定的词汇关系名称,和/或接收用户注册的一个或多个专业词汇表。
[0070]相应地,在该实施例中,设置单元201具体用于在词汇关系词汇表中使用所述词汇关系名称定义词汇关系,并根据所述词汇关系词汇表生成所述词汇关系元数据表;根据用户注册的词根化词汇表生成所述词根化元数据表;根据所述专业词汇表生成所述中文分词元数据表。
[0071]相应地,在该实施例中,查询单元202在进行全文查询时,如果启用了词根化词汇表,则先获取用户查询语句中的关键词和XII节点数据行中的关键词这两个关键词的词根,然后比较这两个词根是否相同。
[0072]相应地,在该实施例中,查询单元202在启用了词根化词汇表,并且需要查询全文索引表时,将词根化词汇表中的每个词都去查询全文索引表,得到多个数据行标识110位图;对所述多个110位图做或运算,得到符合全文检索条件的节点集合。
[0073]本发明实施例的系统可以使乂01161~7的全文检索功能更加灵活、完备和可定制,使语料库的管理和使用变得高效,稳定、可靠;特别是可以动态配置的中文分词库的使用,大大提高了中文全文检索的精准度、灵活性和智能性。可扩动态配置的#6皿1118词库,因此可以使X见0813不依赖任何人类语言的语言学特征完成词根化,保持X见0813全文检索内核的独立性和语言无关性。本发明实施例的系统还可以灵活地自定义词汇间关系,以便在全文检索中充分发挥人类语言的灵活性。
[0074]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0075]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0076]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种XML数据库全文检索方法,其特征在于,所述方法包括: 在XML数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键; 在进行查询时,利用所述字符串引用与其对应的词汇表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收用户设定的词汇关系名称,并在词汇关系词汇表中使用所述词汇关系名称定义词汇关系; 根据所述词汇关系词汇表生成所述词汇关系元数据表。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 根据用户注册的词根化词汇表生成所述词根化元数据表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收用户注册的一个或多个专业词汇表; 根据所述专业词汇表生成所述中文分词元数据表。
5.根据权利要求1所述的方法,其特征在于,所述字符串为统一资源定位符URL字符串。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括: 在进行全文查询时,如果启用了词根化词汇表,则先获取用户查询语句中的关键词和XML节点数据行中的关键词这两个关键词的词根,然后比较这两个词根是否相同。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括: 如果启用了词根化词汇表,并且需要查询全文索引表,则将词根化词汇表中的每个词都去查询全文索引表,得到多个数据行标识TID位图; 对所述多个TID位图做或运算,得到符合全文检索条件的节点集合。
8.—种XML数据库全文检索系统,其特征在于,所述系统包括: 设置单元,用于在XML数据库中设置停用词元数据表、词汇关系元数据表、词根化元数据表、以及中文分词元数据表,并且各元数据表中每一行以一个字符串为主键; 查询单元,用于在进行查询时,利用所述字符串引用与其对应的词汇表。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括: 接收单元,用于接收用户设定的词汇关系名称,和/或接收用户注册的一个或多个专业词汇表; 所述设置单元,具体用于在词汇关系词汇表中使用所述词汇关系名称定义词汇关系,并根据所述词汇关系词汇表生成所述词汇关系元数据表;根据用户注册的词根化词汇表生成所述词根化元数据表;根据所述专业词汇表生成所述中文分词元数据表。
10.根据权利要求8或9所述的系统,其特征在于, 所述查询单元在进行全文查询时,如果启用了词根化词汇表,则先获取用户查询语句中的关键词和XML节点数据行中的关键词这两个关键词的词根,然后比较这两个词根是否相同。
11.根据权利要求10所述的系统,其特征在于,所述系统还包括: 所述查询单元,在启用了词根化词汇表,并且需要查询全文索引表时,将词根化词汇表中的每个词都去查询全文索引表,得到多个数据行标识TID位图;对所述多个TID位图做或运算,得到符合全文检索条件的节点集合。
【文档编号】G06F17/30GK104346332SQ201310311498
【公开日】2015年2月11日 申请日期:2013年7月23日 优先权日:2013年7月23日
【发明者】赵伟, 李 浩, 郑程光, 孙伟丰, 罗正海, 陈丽娟 申请人:北大方正集团有限公司, 方正信息产业控股有限公司, 上海方正数字出版技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1