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 ...
【技术保护点】
一种关键字检索方法,其特征在于,所述方法包括:接收输入的关键字检索请求,所述请求中包括目标文件的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τ>=τ τ:τ-τ, >为...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。