基于图索引的图数据库关键词邻近搜索方法

文档序号:6356874阅读:181来源:国知局
专利名称:基于图索引的图数据库关键词邻近搜索方法
技术领域
本发明涉及数据库关键词搜索技术领域,尤其涉及一种基于图索引的图数据库关键词邻近搜索方法。
背景技术
关键词邻近搜索是一项用于数据库内结构化及半结构化数据的关键词搜索的主流技术。不同于传统的应用于非结构数据的关键词搜索技术,如Google等搜索引擎的方法,这项技术并不是只查找包含了所有给定关键词的单个文档或对象,而是在数据库中去查找包含了所有关键词的结构体,这些结构体由一些相互间存在结构联系的对象所组成, 作为一个整体可满足用户的信息需求。它既不需要用户掌握结构化的查询语言和复杂的数据库模式,又能充分发掘数据库内的数据本身所具有的结构化信息的潜在价值,并在传统关键词搜索技术失效时仍然能够为用户发现有用的信息。因此,它具有十分重要的科研与产业价值。关键词邻近搜索方法大致可按所检索的数据库类型分为三类关系数据库的,XML 数据库的,和图数据库的。其中,关系数据库的关键词邻近搜索方法帮助用户查找包含给定关键词的关系元组通过主外键关系所组成的连接网络(Connected Network,CN),它可利用关系数据库的模式减小搜索空间,还可利用RDBMS的SQL执行引擎来做查询优化;XML数据库的关键词邻近搜索方法帮助用户查找以包含给定关键词的XML标签的最低公共祖先 (Lowest Common Ancestor, LCA)为根的树,它可利用XML标签的Dewey编码来提高搜索速度;而图数据库的关键词邻近搜索方法则是用于对真正的图结构数据进行检索,它主要依靠一些图搜索算法来实现,相对于前两类方法技术还不成熟(参见文献1-4)。面向图数据的关键词邻近搜索本质上类似于图论中的经典NP完全问题——组 Steiner树(Group Steiner Tree, GST)问题,但是复杂度更高,一般采用启发式算法予以解决。现有的算法的公共思想是先将所有包含了给定关键词的匹配节点加入到一个被称为“前线”的集合当中,然后迭代地从前线中挑选节点进行访问,每访问一个节点,就把它的所有未访问的邻居节点都加入到前线中来。如果当前访问的节点是沿从某个关键词的匹配节点出发的路径而到达,则它与该关键词相连,如果当前访问的节点与查询中所有的关键词相连,则找到一棵以它为根节点、以各个关键词的匹配节点为叶子节点的连接树,作为搜索的结果保存起来。如果这棵连接树被其它找到的连接树完全覆盖,则这棵连接树会被放弃,也就是说,只有最小连接树才会被保留。当最好的k个最小连接树被找到后,搜索停止, 输出top-k答案。为了提高面向图数据的关键词邻近搜索的速度,最近有人提出了一种基于图索引的方法首先定义了一种无权重图的r-半径子图,即以图中某一个节点为中心,包含所有从中心出发r跳内可达的节点,及这些节点之间所有的边;找出图中所有的最大r-半径子图,即不会被其它子图完全覆盖的子图,建立关键词与子图间的倒排索引;搜索时找到所有包含了查询中全部关键词的匹配子图,为每一个匹配子图生成一个由其中所有包含了关键词的节点以及它们之间的所有路径组成的子图(称为Steiner图)作为查询结果。这种方法还是存在很多问题。首先,一个Reiner图并不是一个合理的查询答案,因为它包含了过多的信息,与最小连接树相比让用户无法准确从中识别有用的信息,另外各个Meiner图之间重复信息太多,大部分答案都没有意义。其次,还有一些技术性难题没有解决,主要包括r-半径子图在没有大小上界限定的情况下可能会非常的大,根据我们对实际数据的调查,当子图过大时会使得整个方法都失效,查询速度反而更慢;关键词到子图的这种简单的图索引结构比较低效,因为查询处理中还需要知道包含了关键词的节点,以及节点与子图间的映射关系等信息,多次索引查询造成了磁盘I/O的次数增加,直接导致了性能下降(参见文献5)。文献 1 -S. Li and etc. Retrieving and organizing web pages by “information unit" . In Wffff Conference Proceedings, pages 230-244,2001 ;文献 2 :G. Bhalotia and etc. Keyword searching and browsing in databases using banks. In ICDE Conference Proceedings, pages 431-440,2002 ;文献3 :V. Kacholia and etc. Bidirectional expansion for keyword search on graph databases. In SIGMOD Conference Proceedings, pages 505-516,2005 ;文献4:H.He and etc. Blinks :Ranked keyword searches on graphs. In SIGMOD Conference Proceedings, pages 305-316,2007文献 5 :G. Li, B. C. Ooi, J. Feng, J. Wang, and L. Zhou. Ease :an effective 3-in-l keyword search method for unstructured, semi-structured and structured data. In SIGMOD Conference Proceedings, pages 903-914,2008.

发明内容
针对上述存在的技术问题,本发明的目的是提供一种基于图索引的图数据库关键词邻近搜索方法,以极大地提高面向图数据库的关键词邻近搜索效率。为达到上述目的,本发明采用如下的技术方案一种基于图索引的图数据库关键词邻近搜索方法,包括线下的索引构建步骤和线上的搜索步骤所述的线下的索引构建步骤包括以下子步骤①为无向有权重图G = (V, E,w)定义了一种d-距离子图;②给定子图中节点个数上界B,采用一种不完整的Dijkstra算法来生成以图中某一节点为中心的d-距离子图;③对已生成的子图进行过滤,保证所有最终得到的子图都不被其它子图完全覆盖;④将得到的最大d-距离子图都保存在子图库中,并构建从节点到子图的索引;⑤设计一种d-距离图索引结构,每个关键词的索引条目包括了所有包含该关键词的d-距离子图的id,以及每个子图中包含了该关键词的节点id的集合;⑥将d-距离图索引按解释型方式存储;所述线上的搜索步骤包括以下子步骤①将图中所有的边都以十字链表的结构常驻在内存中;
②给定关键词查询,在图索引中检索,找出所有匹配子图及其匹配节点集合;③组合所有匹配子图,得到组合子图;④使用搜索算法在组合子图中进行搜索并输出top-k答案。所述d-距离子图给定一个期望距离d,对于图中任一节点ν e V,以ν为中心的 d-距离子图为Gvd=(rvd,£vd),其中,图中节点μ e C当且仅当u与ν的距离不大于d,图中边当且仅当Kd且u,Vvd ο所述最大d-距离子图为当且仅当它不会被任何其它d-距离子图所覆盖,它的节点集合不是任何其它d-距离子图的节点集合的真子集。对每个新生成的d-距离子图都要进行最大化处理,包括以下步骤先将已生成的最大d-距离子图放入集合M,然后逐个取出与新生成的d-距离子图作比较,直到M为空或发现新生成的子图不是最大的或与某个已有子图相同;如果新子图是最大的且不与任何已有子图相同,那么将它加入到最大d-距离子图集合中;在此过程中,如果发现已有的子图被新子图覆盖,则将这个子图从最大d-距离子图集合中移除。最终的最大d-距离子图的生成步骤为对图数据库的节点集合V中的每一个节点,先调用生成函数来生成以此节点为中心的d-距离子图,然后调用最大化函数来实现所有已生成的子图都是最大的,在遍历V中所有节点后算法停止,返回最大d-距离子图集合。在d-距离图索引的逻辑结构中,一个关键词k的入口项结构为集合{(K·)},其中,Si是包含了关键词k的最大d-距离子图,K/·是子图中包含了关键词k的节点集合。所述线上的搜索步骤中的搜索算法为图的关键词邻近搜索算法,包括通过查d-距离图索引,获得包含各个关键词的子图集合与每个子图中包含某个关键词的节点集合;通过计算各个关键词的子图集合的交集,得到关键词查询的匹配子图集合,这些匹配子图中可能包含了关键词查询的最优答案集合;调用子图组合函数来得到真正需要进行搜索的组合子图,组合子图是图G的一个子图,其节点数与边数一般情况下远小于图G,而且在组合子图中搜索可以避免在多个匹配子图中分别搜索时所可能存在的因子图重叠而导致的性能下降问题;调用搜索函数在组合子图中寻找top-k答案,最后返回查询结果。本发明具有以下优点和积极效果1)本发明通过将搜索目标从一个完整的图缩小为一组大小有限的子图,可极大地提高搜索的效率;2)本发明通过建立图索引,可以迅速地为一个关键词查询定位那些包含了这个查询的所有关键词的匹配子图,即包含了其部分最佳答案的那些子图;通过子图虚拟组合方法,可以快速地将所有匹配子图组合成一个图,从而消除了匹配子图的重叠对搜索性能的不利影响;3)本发明通过使用一个支持现有最佳搜索策略的算法,可以高效地从组合子图中找到top-k答案。


图1是本发明中子图生成函数流程图。
图2是本发明中子图最大化函数流程图。
图3是本发明中最大d-距离子图生成算法流程图。
图4是本发明中d-距离子图。
图5是本发明中V-S辅助索引图。
图6是本发明中三合一图索引的逻辑形式图。
图7是本发明中三合一图索引的物理形式图。
图8是本发明中关键词邻近搜索主函数的程序框图。
图9是本发明中子图组合函数流程图。
图10是本发明中搜索函数流程图。
图11是本发明中节点访问函数流程图。
图12是本发明中尝试终止函数流程图。
具体实施例方式1、理论基础在图上的关键词邻近搜索的过程为给定一个用户的关键词查询{k1; k2, . . . kj, 令所有包含了查询中关键词kjl < i < 1)的节点的集合为Mi,称之为关键词Iii的匹配节点集;使用某种启发式算法,从各个关键词的匹配节点集出发,迭代地探索图中的节点,如果某个被访问的节点与所有关键词的匹配节点都有已知路径相连,那么就生成以这个节点为根节点的一棵最小连接树,如果它没有被其它已生成的答案树所覆盖,那么将它做为一棵答案树保存起来;当已发现了 k个答案树,并且满足了收敛条件,即不会再发现比目前最好的k个答案树更好的答案树,则终止搜索。现有的相关方法一般采取两种方式对此过程进行优化通过改进启发式的搜索算法来提高效率,比如强制轮流从各个关键词的匹配节点集去探索未知节点,从而避免搜索过程停滞在某些度特别大的“hub”节点上;或者使用索引技术,对搜索过程中某些步骤进行预计算,然后物化在索引中,从而在搜索时可以通过查询索引来减少计算量,提高了搜索效率。而我们提出的基于图索引的方法则是首次使用了缩小搜索空间的方式,通过预测 top-k查询结果在图中所处的区域(子图),将搜索过程限定在这些区域内,从而极大地提高了搜索效率。首先,定义关键词查询{k1; k2,. . . kx}的答案一最小连接树T的评分函数score 为
权利要求
1.一种基于图索引的图数据库关键词邻近搜索方法,包括线下的索引构建步骤和线上的搜索步骤,其特征在于所述的线下的索引构建步骤包括以下子步骤①为无向有权重图G= (V, E,w)定义了一种d-距离子图;②给定子图中节点个数上界B,采用一种不完整的Dijkstra算法来生成以图中某一节点为中心的d-距离子图;③对已生成的子图进行过滤,保证所有最终得到的子图都不被其它子图完全覆盖;④将得到的最大d-距离子图都保存在子图库中,并构建从节点到子图的索引;⑤设计一种d-距离图索引结构,每个关键词的索引条目包括了所有包含该关键词的 d-距离子图的id,以及每个子图中包含了该关键词的节点id的集合;⑥将d-距离图索引按解释型方式存储; 所述线上的搜索步骤包括以下子步骤①将图中所有的边都以十字链表的结构常驻在内存中;②给定关键词查询,在图索引中检索,找出所有匹配子图及其匹配节点集合;③组合所有匹配子图,得到组合子图;④使用搜索算法在组合子图中进行搜索并输出top-k答案。
2.根据权利要求1所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于 所述d-距离子图给定一个期望距离d,对于图中任一节点ν e V,以ν为中心的d-距离子图为g=(厂ΛΟ,其中,图中节点当且仅当1!与¥的距离不大于d,图中边当且仅当 ^eKd且 u,Vvd。
3.根据权利要求1所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于 所述最大d-距离子图为当且仅当它不会被任何其它d-距离子图所覆盖,它的节点集合不是任何其它d-距离子图的节点集合的真子集。
4.根据权利要求1或3所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于,对每个新生成的d-距离子图都要进行最大化处理,包括以下步骤先将已生成的最大d-距离子图放入集合M,然后逐个取出与新生成的d-距离子图作比较,直到M为空或发现新生成的子图不是最大的或与某个已有子图相同;如果新子图是最大的且不与任何已有子图相同,那么将它加入到最大d-距离子图集合中;在此过程中,如果发现已有的子图被新子图覆盖,则将这个子图从最大d-距离子图集合中移除。
5.根据权利要求4所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于, 最终的最大d-距离子图的生成步骤为对图数据库的节点集合V中的每一个节点,先调用生成函数来生成以此节点为中心的 d-距离子图,然后调用最大化函数来实现所有已生成的子图都是最大的,在遍历V中所有节点后算法停止,返回最大d-距离子图集合。
6.根据权利要求1所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于 在d-距离图索引的逻辑结构中,一个关键词k的入口项结构为集合{以,0)},其中,Si是包含了关键词k的最大d-距离子图,K/·是子图中包含了关键词k的节点集合。
7.根据权利要求1-5中任一项所述的基于图索引的图数据库关键词邻近搜索方法,其特征在于,所述线上的搜索步骤中的搜索算法为图的关键词邻近搜索算法,包括通过查d-距离图索引,获得包含各个关键词的子图集合与每个子图中包含某个关键词的节点集合;通过计算各个关键词的子图集合的交集,得到关键词查询的匹配子图集合,这些匹配子图中可能包含了关键词查询的最优答案集合;调用子图组合函数来得到真正需要进行搜索的组合子图,组合子图是图G的一个子图,其节点数与边数一般情况下远小于图G,而且在组合子图中搜索可以避免在多个匹配子图中分别搜索时所可能存在的因子图重叠而导致的性能下降问题; 调用搜索函数在组合子图中寻找top-k答案,最后返回查询结果。
全文摘要
本发明涉及数据库关键词搜索技术领域,尤其涉及一种基于图索引的图数据库关键词邻近搜索方法。本发明包括线下的索引构建步骤和线上的搜索步骤,线下的索引构建步骤包括为有权重图G=(V,E,w)定义了一种d-距离子图,采用一种不完整的Dijkstra算法来生成以图中某一节点为中心的d-距离子图,得到的最大d-距离子图都保存在子图库中,并构建从节点到子图的索引,设计一种d-距离图索引结构,将d-距离图索引按解释型方式存储,线上的搜索步骤使用搜索算法在组合子图中进行搜索并输出top-k答案。本发明通过将搜索目标从一个完整的图缩小为一组大小有限的子图,可极大地提高搜索的效率。
文档编号G06F17/30GK102163218SQ201110074569
公开日2011年8月24日 申请日期2011年3月28日 优先权日2011年3月28日
发明者刘梦赤, 桑雷, 汪帅, 钟鸣 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1