多个连续top-k关键词查询结果更新方法、系统、存储介质及终端与流程

文档序号:17320542发布日期:2019-04-05 21:31阅读:177来源:国知局
多个连续top-k关键词查询结果更新方法、系统、存储介质及终端与流程

本发明涉及信息处理的技术领域,特别是涉及一种多个连续top-k关键词查询结果更新方法、系统、存储介质及终端。



背景技术:

关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。标准数据查询语言sql就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

随着关系数据库中存储的文本数据的增加,简单高效地从数据库中查询文本数据变得越来越重要。但是,传统的结构化查询方法要求用户掌握一定的结构化查询语言和数据库模式的知识,从而极大地限制了其使用范围。随着互联网的发展,越来越多的普通用户需要访问在线数据库,这些用户通常不具备结构化查询语言和数据库模式的知识。随着网络搜索引擎的兴起,关键词查询(keywordsearch)因为其简单方便的特点得到了广泛的使用。因此,在关系型数据库中进行关键词搜索就成为一个很自然的需求。通过在关系数据库中引入关键词搜索,不仅使得更多的用户可以在关系数据库中查询数据,而且使得在互联网上发布数据库内容变得简单易行,因而有着重大的理论意义与现实价值。近年来,关系数据库中的关键词搜索研究获得了广泛的关注,成为数据库领域的研究热点。

关系数据库中关键词搜索的结果是一组元组连接树(joinedtupletree,jtt)。jtt为数据库中包含了关键词的元组根据主外键引用关系连接起来的一个无环、无多重边、无特定根节点的一个无向树。每一个元组连接树(jtt)都是一个关系代数表达式(relationalalgebraexpression)的结果。这种代数表达式被称为备选网络(candidatenetwork,cn)。图1所示即为一些备选网络的示例。备选网络的生成与关系数据库模式以及关键词在关系表中的实际分布有关,关系数据库中top-k关键词搜索的效率取决于如果快速有效地执行这些生成的备选网络从而找到关联度最大的k的jtt作为搜索结果。

现有关系数据库上的关键词搜索系统主要包括基于数据图(datagraphbased)的方法和基于模式图(schemagraph-based)的方法。基于数据图的方法的基本思想是在由数据库中所有元组根据外键引用关系构造的数据图上寻找包含关键词的子图。基于模式图的方法首先根据数据库的模式将关键词查询“翻译”为一系列的关系表的连接(join)表达式,然后生成结构化查询语句交给关系数据库管理系统去执行生成查询结果。

当数据库被更新以后,如何高效地维护top-k查询结果是一个非常有挑战性的工作。因为数据库更新不仅会导致新的查询结果被生成和已有的查询结果被删除,而且已有查询结果的关联度也会被改变。若数据库被持续更新时需要同时维护多个关键词查询的top-k结果,则面临更大的挑战。

连续top-k关键词搜索的处理过程分为以下两个步骤:

(1)在关键词查询提交到系统时为其计算初始的top-k结果,并保存计算结果后的cn的元组处理状态。

(2)当数据库被改变以后更新top-k查询结果。

每一个cn都是一个关系数据库表的连接表达式:其中表示一个关系表ri的元组集合,为ri中包含关键词查询中的关键词的元组,则为ri中不包含关键词的所有元组,表示自然连接。在查询处理过程中中的元组会根据其关联度的大小从高到低依次处理以寻找查询结果。若中的某一个元组可构成的查询结果的关联度不足以构成top-k结果,则其不会被处理。因此,为连续top-k关键词查询计算好初始查询结果以后,每一个中的元组都有一部分或全部元组被处理并被保存下来。数据库的改变主要包括元组的删除和新增。元组的删除的处理比较直接,若构成top-k结果的元组被删除,则需要重启top-k结果的计算过程。对于新增加的元组,则需要判断其是否可以和每一个cn中已处理的元组构成top-k结果。在上述两种情况下,都需要解决的关键问题即是如何高效的计算一组形如的连接表达式的结果。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多个连续top-k关键词查询结果更新方法、系统、存储介质及终端,用于解决现有技术中当关系数据库更新时多个连续top-k关键词查询结果的快速更新问题。

为实现上述目的及其他相关目的,本发明提供一种关系数据库中多个连续top-k关键词查询结果更新方法,包括以下步骤:将每个关键词基于关系数据库在先元组查询的备选网络表示为一个以新元组为根节点的网络树;通过自上向下合并近似边的方式将所有的网络树合并为一个以新元组为根节点的根树;自上向下逐层计算所述根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果。

于本发明一实施例中,所述近似边是指父节点和子节点的关系表相同的两个边。

于本发明一实施例中,自上向下逐层计算所述根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果包括以下步骤:

对于根树的每一层的每一类相似连接合并查询能够与所有父节点中的元组相连接的元组集合;

计算每一类相似连接中每一个连接的子节点的已处理元组集合与所述元组集合的交集;

计算交集中每个元组与新元组可共同构成的查询结果的关联度上限,并删除关联度上限小于预设查询阈值的元组;所述预设查询阈值为对应top-k关键词查询的当前查询结果的最小关联度;

若每一个连接的子节点中的元组集合变为空集,则从根树中删除该连接所属的备选网络的所有节点。

于本发明一实施例中,对于交集中的每一个元组t,t和新元组可共同构成的查询结果的关联度的上限为其中表示t所在的备选网络cn(t)中不同于t所在的元组集合r(t)的其他元组集合中的元组的最大关联度,t.tscore表示单个元组t的关联度,size(cn(t))表示t所在的元组cn(t)的大小,即其含有的元组的个数。

相应地,本发明还提供一种关系数据库中多个连续top-k关键词查询结果更新系统,包括表示模块、合并模块和查询模块;

所述表示模块用于将每个关键词基于关系数据库在先元组查询的备选网络表示为一个以新元组为根节点的网络树;

所述合并模块用于通过自上向下合并近似边的方式将所有的网络树合并为一个以新元组为根节点的根树;

所述查询模块用于自上向下逐层计算所述根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果。

于本发明一实施例中,所述近似边是指父节点和子节点的关系表相同的两个边。

于本发明一实施例中,所述查询模块自上向下逐层计算所述根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果执行以下步骤:

对于根树的每一层的每一类相似连接合并查询能够与所有父节点中的元组相连接的元组集合;

计算每一类相似连接中每一个连接的子节点的已处理元组集合与所述元组集合的交集;

计算交集中每个元组与新元组可共同构成的查询结果的关联度上限,并删除关联度上限小于预设查询阈值的元组;所述预设查询阈值为对应top-k关键词查询的当前查询结果的最小关联度;

若每一个连接的子节点中的元组集合变为空集,则从根树中删除该连接所属的备选网络的所有节点。

于本发明一实施例中,对于交集中的每一个元组t,t和新元组可共同构成的查询结果的关联度的上限为其中表示t所在的备选网络cn(t)中不同于t所在的元组集合r(t)的其他元组集合中的元组的最大关联度,t.tscore表示单个元组t的关联度,size(cn(t))表示t所在的元组cn(t)的大小,即其含有的元组的个数。

同时,本发明还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述关系数据库中多个连续top-k关键词查询结果更新方法。

最后,本发明还提供一种终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述关系数据库中多个连续top-k关键词查询结果更新方法。

如上所述,本发明的多个连续top-k关键词查询结果更新方法、系统、存储介质及终端,具有以下有益效果:

(1)有效地提高了关系数据库中多个连续top-k关键词搜索的效率;

(2)降低了搜索处理过程中对关系数据库的频繁访问;

(3)降低了搜索处理过程中的服务器内存消耗。

附图说明

图1显示为备选网络于一实施例中的结构示意图;

图2显示为本发明的关系数据库中多个连续top-k关键词查询结果更新方法于一实施例中的流程图;

图3显示为根树于一实施例中的生成过程示意图;

图4显示为本发明的关系数据库中多个连续top-k关键词查询结果更新系统于一实施例中的结构示意图;

图5显示为本发明的终端于一实施例中的结构示意图。

元件标号说明

11表示模块

12合并模块

13查询模块

5终端

51处理器

52存储器

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明的关系数据库中多个连续top-k关键词查询结果更新方法、系统、存储介质及终端将每个关键词查询的备选网络(cn)均表示为一个以新元组为根节点的网络树,通过自上向下合并近似边的方式将所有的网络树合并为一个以新元组为根节点的根树;自顶向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果。

如图2所示,于一实施例中,本发明的关系数据库中多个连续top-k关键词查询结果更新方法包括以下步骤:

步骤s1、将每个关键词基于关系数据库在先元组查询的备选网络表示为一个以新元组为根节点的网络树。

具体地,在关系数据库中,获取每个关键词基于在先元组查询的备选网络集合和新元组tnew,用新元组tnew替换每一个备选网络中相应元组集

步骤s2、通过自上向下合并近似边的方式将所有的网络树合并为一个以新元组为根节点的根树。

其中,近似边是指两个边的父节点和子节点的关系表相同。例如,是相似的四条边。

如图3所示,对于两个备选网络合并后,即可得到根树。

步骤s3、自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果。

通过自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,能够大大降低访问关系数据库的次数。其中,通过在关系数据库中查询与新元组直接或间接相连的所有元组,并利用根树中的节点的已处理元组和可预期的查询结果的关联度上限进行过滤和剪枝操作,从而获取多个连续top-k关键词基于新元组的查询结果。

具体地,自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果包括以下步骤:

(1)对于根树的每一层的每一类相似连接合并查询能够与所有父节点中的元组相连接的元组集合

其中,每一类相似的连接都采用一个sql语句从关系数据库中查询能够与所有父节点中的元组通过主外键引用关系关联的元组。

(2)计算每一类相似连接中每一个连接j的子节点的已处理元组集合与元组集合的交集。

例如,在图3中第一层有两类近似连接,则会分别从关系数据库的关系表a和p中查询和元组tnew相关联的元组集合,然后分别计算四个子节点中的已处理元组集合与元组集合的交集。

(3)计算交集中每个元组与新元组可共同构成的查询结果的关联度上限,并删除关联度上限小于预设查询阈值的元组;所述预设查询阈值为对应top-k关键词查询的当前查询结果的最小关联度。

对于交集中的每一个元组t,根据计算t和tnew可共同构成的查询结果的关联度的上限,其中表示t所在的备选网络cn(t)中不同于t所在的元组集合r(t)的其他元组集合中的元组的最大关联度,t.tscore表示单个元组t的关联度,size(cn(t))表示t所在的元组cn(t)的大小,即其含有的元组的个数。

因此,上述计算交集和利用可预期的查询结果的关联度上限来排查相应元组t的过程即实现了查询处理的过滤和剪枝操作,从而可以尽量避免无效计算,为多个连续top-k关键词查询迅速找到包含新元组的top-k查询结果。

(4)若每一个连接j的子节点中的元组集合变为空集,则从根树中删除该连接j所属的备选网络的所有节点。

当根树中的所有连接进行上述(1)-(4)的处理以后,其节点中的元组都可以与新元组tnew构成关联度大于当前的top-k查询结果的最小关联度的查询结果,故只需要做枚举操作即可生成所有的查询结果,而不再需要访问数据库。

如图4所示,于一实施例中,本发明的关系数据库中多个连续top-k关键词查询结果更新系统包括表示模块11、合并模块12和查询模块13。

表示模块11用于将每个关键词基于关系数据库在先元组查询的备选网络表示为一个以新元组为根节点的网络树。

具体地,在关系数据库中,获取每个关键词基于在先元组查询的备选网络集合和新元组tnew,用新元组tnew替换每一个备选网络中相应元组集

合并模块12与表示模块11相连,用于通过自上向下合并近似边的方式将所有的网络树合并为一个以新元组为根节点的根树。

其中,近似边是指两个边的父节点和子节点的关系表相同。例如,是相似的四条边。

如图3所示,对于两个备选网络合并后,即可得到根树。

查询模块13与合并模块12相连,用于自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果。

通过自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,能够大大降低访问关系数据库的次数。其中,通过在关系数据库中查询与新元组直接或间接相连的所有元组,并利用根树中的节点的已处理元组和可预期的查询结果的关联度上限进行过滤和剪枝操作,从而获取多个连续top-k关键词基于新元组的查询结果。

具体地,查询模块13自上向下逐层计算根树中的连接,并根据连接之间的相似性进行合并查询,以获取多个连续top-k关键词基于新元组的查询结果执行以下步骤:

(1)对于根树的每一层的每一类相似连接合并查询能够与所有父节点中的元组相连接的元组集合

其中,每一类相似的连接都采用一个sql语句从关系数据库中查询能够与所有父节点中的元组通过主外键引用关系关联的元组。

(2)计算每一类相似连接中每一个连接j的子节点的已处理元组集合与元组集合的交集。

例如,在图3中第一层有两类近似连接,则会分别从关系数据库的关系表a和p中查询和元组tnew相关联的元组集合,然后分别计算四个子节点中的已处理元组集合与元组集合的交集。

(3)计算交集中每个元组与新元组可共同构成的查询结果的关联度上限,并删除关联度上限小于预设查询阈值的元组;所述预设查询阈值为对应top-k关键词查询的当前查询结果的最小关联度。

对于交集中的每一个元组t,根据计算t和tnew可共同构成的查询结果的关联度的上限,其中表示t所在的备选网络cn(t)中不同于t所在的元组集合r(t)的其他元组集合中的元组的最大关联度,t.tscore表示单个元组t的关联度,size(cn(t))表示t所在的元组cn(t)的大小,即其含有的元组的个数。

因此,上述计算交集和利用可预期的查询结果的关联度上限来排查相应元组t的过程即实现了查询处理的过滤和剪枝操作,从而可以尽量避免无效计算,为多个连续top-k关键词查询迅速找到包含新元组的top-k查询结果。

(4)若每一个连接j的子节点中的元组集合变为空集,则从根树中删除该连接j所属的备选网络的所有节点。

当根树中的所有连接进行上述(1)-(4)的处理以后,其节点中的元组都可以与新元组tnew构成关联度大于当前的top-k查询结果的最小关联度的查询结果,故只需要做枚举操作即可生成所有的查询结果,而不再需要访问数据库。

需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

本发明的存储介质上存储有计算机程序,该程序被处理器执行时实现上述关系数据库中多个连续top-k关键词查询结果更新方法。优选地,所述存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

如图5所示,于一实施例中,本发明的终端5包括处理器51及存储器52;所述存储器52用于存储计算机程序,所述处理器51用于执行所述存储器52存储的计算机程序,以使所述终端执行上述关系数据库中多个连续top-k关键词查询结果更新方法。

优选地,所述处理器51可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

综上所述,本发明的多个连续top-k关键词查询结果更新方法、系统、存储介质及终端有效地提高了关系数据库中多个连续top-k关键词搜索的效率;降低了搜索处理过程中对关系数据库的频繁访问;降低了搜索处理过程中的服务器内存消耗。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1