一种关键字检索方法、装置及系统制造方法及图纸

技术编号:9618415 阅读:76 留言:0更新日期:2014-01-30 06:16
本发明专利技术适用于计算机检索技术领域,提供了一种关键字检索方法、装置及系统,所述方法包括:接收输入的关键字检索请求,请求中包括目标文件的ID和关键字检索语句;根据目标文件的ID读取文件信息;对目标文件进行分块;在各分块上运行Mapper程序,以由Mapper程序根据关键字检索语句以及文件信息查询得到各分块对应的SCKS、SLCA节点,并生成子树SCKS’;发送SLCA节点与SCKS’至Reduce设备,以由Reduce设备根据SLCA节点与SCKS’计算得到检索结果。本发明专利技术,通过MapReduce对海量XML文件进行分布式并行运算,从而可以支持大数据量的关键字检索。

Keyword retrieval method, device and system

The invention is applicable to the technical field of computer retrieval, provides a keyword retrieval method, device and system, wherein the method comprises: receiving input keyword retrieval request, including the target file ID and keyword search statement request; according to the target file ID read the file information on the target file; block; run the Mapper program in each block, by Mapper program based on keyword search statements and file information query SCKS, SLCA node corresponding to each block, and generate subtree SCKS'; SLCA nodes and SCKS' to the Reduce device, by Reduce equipment according to the SLCA node and SCKS' calculation to get the retrieval results. The invention carries out distributed parallel operation on massive XML files through MapReduce, thereby enabling keyword retrieval of large amounts of data.

【技术实现步骤摘要】
一种关键字检索方法、装置及系统
本专利技术属于计算机检索
,尤其涉及一种关键字检索方法、装置及系统。
技术介绍
检索是计算机应用领域的基础核心功能。随着XML技术的广泛应用,如何在海量XML数据集中进行高效检索成为难题。 XML 路径语言(XML Path Language, XPath)/XML 查询(XML Query, XQuery)是由万维网联盟(World Wide Web Consortium,W3C)制定的一种功能完善的XML查询语言。它利用事先掌握的目标文档的层次结构(Schema),使用路径表达式进行查询。然而,在应用于海量XML数据集时,如何完整的获得所有文档的层次结构是个挑战,这导致一些复杂的查询无法实现。即使掌握了所有文档的层次结构,但由于文档复杂的层次结构,将导致查询语句不易编写、查询算法难以优化等问题。基于关键字的XML查询方法(XML Keyword Search)通过对XML文档的有向标签树进行运算,试图返回最紧致的关键字片断树。它不需要用户事先掌握XML文档的层次结构,有着友好的用户接口。目前,XML关键字查询方法大多基于最低公共祖先(Lowest Common Ancestor,LCA)技术,进一步研究还有最小最低公共祖先(Smallest Lowest Common Ancestor, SLCA)等。设表达式v〈av’表示节点V是V’的祖先节点,V ≤ay’表示节点V是节点V’的祖先节点或是节点V’。则LCA和SLCA的形式定义如下:LCA:给定m个节点V1, v2,...Vnri, Vm,假如节点w对每个1≤i≤m)均满足w ≤a Vi ;而不存在结点u对每个Vi (1≤i≤m)均满足u≤Ji,且w〈au,则称节点w为节点V1, V2,...Vm-1, Vm 的 LCA 节点,记作 W=LCA (V1, V2,, vm)。SLCA:给定η个LCA节点W1, w2,...Wlri, wn,假如节点s是SLCA节点,则不存在Wi (1≤ i ≤ j),使得 WiCaS,记作 s e SLCA (W1, w2,...Wn^1, wn)。如图1所示,图1为XML检索领域常用的测试文档,一个文献数据库结构图(以下简称dblp)。这是个带Dewey编码的XML层次结构图。从图1可知,dblp的根节点为{O, dblp},其中O为Dewey编码,dblp为标签名。则当以关键字“Ling”和“Wei ”进行查询时(可表示为 Q=[Ling, Wei]),查询到的 LCA 节点集为[{0.0, article}, {0.1, article}, {O,dblp}],查询到的 SLCA 节点集为[{0.0, article}, {0.1,article}]。可以看出,基于 SLCA的XML关键字查询算法最终将返回以SLCA节点为根节点的最紧凑的XML数据片断。显然,相比较于LCA,SLCA返回的数据片断更符合用户需求。然而,基于SLCA的XML文档的关键字检索(以下简称为SLCA检索)存在以下几个问题:I)、面对海量的XML数据时,SLCA检索无法直接运算。2)、SLCA检索返回的数据片断并不一定符合用户需求。例如,当用户对图1的dblp进行关键字检索Q=[Ling],期望得到作者为Ling的所有文章时,检索得到的SLCA节点集为[{0.0.1,author}, {0.1.0,title}],显然这并不符合用户需求。3)、SLCA检索不支持复杂的带有语义的检索。例如,上文提到的检索Q= [Ling, Wei],当用户发起该检索,期望得到作者Ling和Wei合作写的文章。而该检索得到的SLCA节点包含了节点{0.1,article},而实际上该文章是由作者Wei独立完成的。
技术实现思路
本专利技术实施例提供了一种关键字检索方法、装置及系统,旨在解决现有的SLCA检索方法无法检索海量的XML数据,并且检索结果不准确的问题。一方面,提供一种关键字检索方法,所述方法包括:接收输入的关键字检索请求,所述请求中包括目标文件的ID和关键字检索语句;根据所述目标文件的ID读取文件信息;对所述目标文件进行分块;在各分块上运行Mapper程序,以由所述Mapper程序根据所述关键字检索语句以及所述文件信息查询得到各分块对应的结构完整关键字子树SCKS、最小最低公共祖先SLCA节点,并从所述SCKS中移除以所述SLCA节点为根节点的数据片段,生成子树SCKS’ ;发送所述SLCA节点与所述子树SCKS ’至Reduce设备,以由所述Reduce设备根据所述SLCA节点与所述子树SCKS’计算得到检索结果。进一步地,所述文件信息包括所述目标文件的所有节点信息,所述节点信息包括节点的唯一标识、节点的标签名、节点的类型,所述节点的类型包括实体节点、属性节点、连接节点和值节点。进一步地,所述在各分块上运行Mapper程序,根据所述关键字检索语句以及所述文件信息查询得到各分块对应的结构完整关键字子树SCKS、最小最低公共祖先SLCA节点包括:根据所述节点信息在各分块中查找符合所述关键字检索语句的值节点,生成值节点集;根据所述节点信息对所述值节点集中的值节点依次进行补全操作,得到各分块对应的结构完整关键字子树SCKS ;查找各分块对应的结构完整关键字子树SCKS中的各个值节点的公共祖先,将所述公共祖先作为最低公共祖先LCA节点;比较各LCA节点的祖孙关系,将辈分最小的LCA节点作为最小最低公共祖先SLCA节点。进一步地,所述根据所述节点信息对所述值节点集中的值节点依次进行补全操作,得到各分块对应的结构完整关键字子树SCKS包括:步骤1、定位至所述值节点集中的第一个值节点;步骤2、读取所述值节点的唯一标识;步骤3、根据所述唯一标识,向上补全,将补全后的结果存入对应的结构完整关键字子树SCKS中;步骤4、定位至所述值节点集中的下一个值节点,并递归执行步骤2至3,直至最后一个值节点完成补全操作。进一步地,所述Reduce设备根据所述SLCA节点与所述子树SCKS’计算得到检索结果包括:所述Reduce设备调用Reduce程序;所述Reduce程序保存接收到的SLCA节点,并将该SLCA节点记为Pl ;所述Reduce程序合并各分块对应的SCKS ’,生成SCKS ” ;所述Reduce程序对所述SCKS”进行SLCA运算,得到SLCA节点,并记该节点为P2 ;所述Reduce程序合并所述Pl和P2,得到最终的检索结果。进一步地,关键字检索语句Q满足Q —Tn I Ts I QTn I QTs,其中,_>为“定义为”,I为“或”,Ts是包含语义的关键字子语句,Tn是不属于Ts的T,T是不含空字符的非空字符串,Ts包括τ > τ|τ〈τ|τ>τ|τ〈=τ|τ>=τ|τ:τ-τ,>为“包含”,τ:τ-τ表示一个设定的区间范围。另一方面,提供一种关键字检索装置,所述装置包括:检索请求接收单元,用于接收输入的关键字检索请求,所述请求中包括目标文件的ID和关键字检索语句;文件信息获取单元,用于根据所述目标文件的ID读取文件信息;分块单元,用于对所述目标文件进行分块;SCKS和S本文档来自技高网
...

【技术保护点】
一种关键字检索方法,其特征在于,所述方法包括:接收输入的关键字检索请求,所述请求中包括目标文件的ID和关键字检索语句;根据所述目标文件的ID读取文件信息;对所述目标文件进行分块;在各分块上运行Mapper程序,以由所述Mapper程序根据所述关键字检索语句以及所述文件信息查询得到各分块对应的结构完整关键字子树SCKS、最小最低公共祖先SLCA节点,并从所述SCKS中移除以所述SLCA节点为根节点的数据片段,生成子树SCKS’;发送所述SLCA节点与所述子树SCKS’至Reduce设备,以由所述Reduce设备根据所述SLCA节点与所述子树SCKS’计算得到检索结果。

【技术特征摘要】
1.一种关键字检索方法,其特征在于,所述方法包括: 接收输入的关键字检索请求,所述请求中包括目标文件的ID和关键字检索语句; 根据所述目标文件的ID读取文件信息; 对所述目标文件进行分块; 在各分块上运行Mapper程序,以由所述Mapper程序根据所述关键字检索语句以及所述文件信息查询得到各分块对应的结构完整关键字子树SCKS、最小最低公共祖先SLCA节点,并从所述SCKS中移除以所述SLCA节点为根节点的数据片段,生成子树SCKS’ ; 发送所述SLCA节点与所述子树SCKS’至Reduce设备,以由所述Reduce设备根据所述SLCA节点与所述子树SCKS’计算得到检索结果。2.如权利要求1所述的方法,其特征在于,所述文件信息包括所述目标文件的所有节点信息,所述节点信息包括节点的唯一标识、节点的标签名、节点的类型,所述节点的类型包括实体节点、属性节点、连接节点和值节点。3.如权利要求2所述的方法,其特征在于,所述在各分块上运行Mapper程序,根据所述关键字检索语句以及所述文件信息查询得到各分块对应的结构完整关键字子树SCKS、最小最低公共祖先SLCA节点包括: 根据所述节点信息在各分块中查找符合所述关键字检索语句的值节点,生成值节点集; 根据所述节点信息对所 述值节点集中的值节点依次进行补全操作,得到各分块对应的结构完整关键字子树SCKS ; 查找各分块对应的结构完整关键字子树SCKS中的各个值节点的公共祖先,将所述公共祖先作为最低公共祖先LCA节点; 比较各LCA节点的祖孙关系,将辈分最小的LCA节点作为最小最低公共祖先SLCA节点。4.如权利要求3所述的方法,其特征在于,所述根据所述节点信息对所述值节点集中的值节点依次进行补全操作,得到各分块对应的结构完整关键字子树SCKS包括: 步骤1、定位至所述值节点集中的第一个值节点; 步骤2、读取所述值节点的唯一标识; 步骤3、根据所述唯一标识,向上补全,将补全后的结果存入对应的结构完整关键字子树SCKS中; 步骤4、定位至所述值节点集中的下一个值节点,并递归执行步骤2至3,直至最后一个值节点完成补全操作。5.如权利要求1所述的方法,其特征在于,所述Reduce设备根据所述SLCA节点与所述子树SCKS’计算得到检索结果包括: 所述Reduce设备调用Reduce程序; 所述Reduce程序保存接收到的SLCA节点,并将该SLCA节点记为Pl ; 所述Reduce程序合并各分块对应的SCKS ’,生成SCKS ” ; 所述Reduce程序对所述SCKS”进行SLCA运算,得到SLCA节点,并记该节点为P2 ; 所述Reduce程序合并所述Pl和P2,得到最终的检索结果。6.如权利要求1至5任一项所述的方法,其特征在于,关键字检索语句Q满足Q —TnI Ts I QTn I QTs,其中,-> 为“定义为”,I为“或”,Ts是包含语义的关键字子语句,Tn是不属于Ts的τ,τ是不含空字符的非空字符串,Ts包括τ > τIτ〈τIτ>τIτ〈=τIτ>=τ τ:τ-τ, >为...

【专利技术属性】
技术研发人员:徐光剑
申请(专利权)人:中安消技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1