[发明专利]一种图查询方法及系统有效
申请号: | 201810385839.X | 申请日: | 2018-04-26 |
公开(公告)号: | CN110209885B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 张少愚;陈云云;黄楠驹;朱辉云 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 贾允;肖丁 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 查询 方法 系统 | ||
1.一种图查询方法,其特征在于,所述图的直接节点和边都是以键值对的形式存储,所述直接节点的值能够用于查询所述直接节点相关的可扩展边,所述边的键通过所述边的两个相关节点的组合表示,所述方法包括:
获取待查询的初始直接节点;
获取扩展深度和扩展条件;
若扩展深度等于1,则根据所述初始直接节点获取可扩展边;
若扩展深度大于1,则循环查询直至达到所述扩展深度,每一次查询包括:根据上一次查询过程中获取到的可扩展边得到相关节点集合,将所述相关节点集合中的每个相关节点作为直接节点获取可扩展边。
2.根据权利要求1所述的方法,其特征在于,还包括:
在查询过程中实时将获取到的节点和可扩展边纳入查询结果集合,获取所述查询结果集合中目标节点的属性信息,所述目标节点包括所述查询结果集合中已有的节点和所述可扩展边对应的相关节点。
3.根据权利要求2所述的方法,其特征在于,在所述循环查询直至达到所述扩展深度之后,还包括:
获取过滤条件;
按照所述过滤条件对所述查询结果集合进行过滤得到过滤后的查询结果集合。
4.根据权利要求2所述的方法,其特征在于,若扩展深度大于1,则每一次查询过程中还包括对相关节点集合和/或获取到的可扩展边进行过滤的步骤。
5.根据权利要求3或4所述的方法,其特征在于,在所述获取待查询的初始直接节点之前,还包括:
获取查询指令,所述查询指令以图查询语句字符串的形式表示;
根据所述查询指令生成抽象语法树,所述抽象语法树表示的内容包括初始直接节点、扩展条件、扩展深度和/或过滤条件。
6.根据权利要求2所述的方法,其特征在于:
所述查询结果集合中的节点以节点数组的形式存储,所述节点数组中的每个节点以链表的形式记录所述节点相关的边。
7.根据权利要求1所述的方法,其特征在于,若扩展深度大于1,则每一次查询包括:对已知的节点按照宽度优先搜索算法执行所有查询请求,待全部查询请求返回后,再进行下一次查询扩展。
8.根据权利要求1所述的方法,其特征在于,若扩展深度大于1,则每一次查询包括:对两个已知的节点同时执行宽度优先搜索查询得到以图形式表示的两个查询结果,记录两幅图的交点集合,在查询结束之后,从所述交点集合进行回溯,找出回溯过程中经过的所有点和边。
9.一种图查询系统,其特征在于,包括:
图形数据库,用于以键值对的形式存储所述图的直接节点和边,所述直接节点的值能够用于查询所述直接节点相关的可扩展边,所述边的键通过所述边的两个相关节点的组合表示;
查询服务器,用于进行图查询,所述查询服务器包括:
初始直接节点查询模块,用于获取待查询的初始直接节点;
扩展要素获取模块,用于获取扩展深度和扩展条件;
查询模块,用于若扩展深度等于1,则根据所述初始直接节点获取可扩展边;若扩展深度大于1,则循环查询直至达到所述扩展深度,每一次查询包括:根据上一次查询过程中获取到的可扩展边得到相关节点集合,将所述相关节点集合中的每个相关节点作为直接节点获取可扩展边。
10.根据权利要求9所述的系统,其特征在于,所述查询服务器还包括:
过滤条件获取模块,用于获取过滤条件;
第一过滤模块,用于按照所述过滤条件对所述查询结果集合进行过滤得到过滤后的查询结果集合。
11.根据权利要求9所述的系统,其特征在于,所述查询服务器还包括:
第二过滤模块,用于对每次查询过程中得到的相关节点集合和/或获取到的可扩展边进行过滤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810385839.X/1.html,转载请声明来源钻瓜专利网。