【技术实现步骤摘要】
图谱最短路径的查询方法、装置、电子设备和存储介质
本申请涉及虚拟网络
,尤其涉及一种图谱最短路径的查询方法、装置、电子设备和存储介质。
技术介绍
图数据库产品的落地,需要图计算算法的支持,其中最短路径便是常见实用的图计算算法。目前已有的图数据库引擎中,主从模式采用的最短路径算法通常只应用于单机,而分布式图数据库往往缺少大规模数据量最短路径算法的支持和优化。相关技术中,分布式图数据库最短路径的算法,通常采用迪杰斯特拉算法,在分布式的场景下,该算法降级为单向广度优先算法。为了适应分布式存储的数据检索,单向广度优先搜索使用多线程来搜索每层的节点,每个线程会搜索部分当前层实体展开的下一层实体,并校验是否包含终点实体。但是,目前存在的问题是:上述最短路径算法会随着路径层数增加消耗的时间也会成指数级增长。例如,在平均每个实体出入度为10的场景下,三度的最短路径检索会超过一秒,增加层数会让消耗时间迅速增加。无论是实体出入度增加或者层数增加的情况下,上述最短路径算法都无法满足分布式图存储的情况下高效的挖掘。r>专利技术本文档来自技高网...
【技术保护点】
1.一种图谱最短路径的查询方法,其特征在于,包括以下步骤:/n以待搜索的起点实体和终点实体分别为根节点,在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体;/n将所述新的实体与对立侧搜索集的最高层实体进行交集校对;/n若存在实体交集,则确定所有交集点,并通过所述所有交集点进行路径回溯以找到所述起点实体和所述终点实体的最短路径。/n
【技术特征摘要】
1.一种图谱最短路径的查询方法,其特征在于,包括以下步骤:
以待搜索的起点实体和终点实体分别为根节点,在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体;
将所述新的实体与对立侧搜索集的最高层实体进行交集校对;
若存在实体交集,则确定所有交集点,并通过所述所有交集点进行路径回溯以找到所述起点实体和所述终点实体的最短路径。
2.根据权利要求1所述的方法,其特征在于,以待搜索的起点实体和终点实体分别为根节点,在分布式图数据库中分别进行广度优先搜索,包括:
以所述起点实体和所述终点实体分别为根节点,在所述分布式图数据库中交替进行广度优先搜索。
3.根据权利要求2所述的方法,其特征在于,以所述起点实体或所述终点实体为根节点,在所述分布式图数据库中进行一层实体的广度优先搜索,包括:
创建主线程和线程池;
确定所述分布式图数据库中以所述起点实体或所述终点实体为根节点进行当前层实体广度优先搜索时的实体请求;
通过所述主线程将搜索当前层的实体请求切分为多个批处理请求,并将所述多个批处理请求分配给所述线程池中各线程进行执行;
所述主线程设置多线程栅栏,并通过所述多线程栅栏等待所述各线程搜索实体的返回,待所有线程均返回后确定当前层被搜索完毕。
4.根据权利要求1所述的方法,其特征在于,以待搜索的起点实体和终点实体分别为根节点,在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体,包括:
以所述起点实体和终点实体分别为根节点,基于线程阻塞消息队列和贪心算法在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体。
5.根据权利要求4所述的方法,其特征在于,以所述起点实体和终点实体分别为根节点,基于线程阻塞消息队列和贪心算法在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体,包括:
创建主线程和线程池;
确定所述分布式图数据库中以所述起点实体和终点实体分别为根节点进行当前层实体广度优先搜索时的实体请求;
通过所述主线程,将搜索起点实体侧的当前层的实体请求、和搜索终点实体侧的当前层的实体请求分别分配给对应的线程池进行执行;
通过所述主线程,采用阻塞消息队列以读取一层新的实体,其中,所述一层新的实体为由起点实体侧或终点实体侧的线程池优先完成当前层实体搜索时而得到的。
6.根据权利要求1至5中任一项所述的方法,其特征在于,通过所述所有交集点进行路径回溯以找到所述起点实体和所述终点实体的最短路径,包括:
采用深度优先搜索对于所述所有交集点进行双向回溯,找到从所述起点实体到所述所有交集点的所有经过的路径、以及从所述所有交集点到所述终点实体的所有经过的路径;
将从所述起点实体到所述所有交集点的所有经过的路径、和从所述所有交集点到所述终点实体的所有经过的路径进行枚举拼接,得到所述起点实体和所述终点实体之间的所有最短路径。
7.一种图谱最短路径的查询装置,其特征在于,包括:
搜索模块,用于以待搜索的起点实体和终点实体分别为根节点,在分布式图数据库中分别进行广度优先搜索,每次搜索得到一层新的实体;
交集校对模块,用于将所述新的实体与对立侧搜索集的最高层实体进行交集...
【专利技术属性】
技术研发人员:邓乐,陈坤斌,方军,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。