CN112000695B - 路径查询方法、装置、电子设备及计算机可读存储介质 - Google Patents
路径查询方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112000695B CN112000695B CN202010509121.4A CN202010509121A CN112000695B CN 112000695 B CN112000695 B CN 112000695B CN 202010509121 A CN202010509121 A CN 202010509121A CN 112000695 B CN112000695 B CN 112000695B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- group
- target
- termination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种路径查询方法、装置、电子设备及计算机可读存储介质。该方法包括:当接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;确定由起始节点到起始侧节点组中的第一节点之间的第一路径以及由终止节点到终止侧节点组中的第二节点之间的第二路径;将第一路径与第二路径进行拼接,得到起始节点以及终止节点之间的所有路径。本方案将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
Description
技术领域
本申请涉及数据库技术领域,具体而言,本申请涉及一种路径查询方法、装置、电子设备及计算机可读存储介质。
背景技术
Neo4j是一个高性能的,NOSQL图形数据库。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。
Neo4j原生实现的查询两点间的n度以内全部路径是通过cypher语句实现,目前在进行全部路径查询时,尤其是在该次查询存在大量路径时,查询速度较慢,不便于用户使用。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种路径查询方法,该方法包括:
当接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
确定由起始节点到起始侧节点组中的第一节点之间的第一路径,第一节点为起始侧节点组中无后继节点的节点;
确定由终止节点到终止侧节点组中的第二节点之间的第二路径,第二节点为终止侧节点组中无后继节点的节点;
将第一路径与第二路径进行拼接,得到起始节点以及终止节点之间的所有路径。
可选地,确定由起始节点到起始侧节点组中的第一节点之间的第一路径,和/或,确定由终止节点到终止侧节点组中的第二节点之间的第二路径,包括:
通过路径线程池中的至少两个路径查询线程确定由起始节点到起始侧节点组中的第一节点之间的第一路径,和/或,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,起始侧节点组中的节点与起始节点之间的路径长度不大于第一预设长度,终止侧节点组中的节点与终止节点之间的路径长度不大于第二预设长度,第一预设长度与第二预设长度的度数差值不超过1,且第一预设长度与第二预设长度的和等于起始节点以及终止节点之间的最大路径长度。
可选地,确定由起始节点到起始侧节点组中的第一节点之间的第一路径,包括:
从起始侧节点组中查找与起始节点的相邻的第一目标节点,并将起始节点标记为已被查询节点;
从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点,第二目标节点不属于已被查询节点;
将第二目标节点作为第一目标节点,重复执行从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除起始节点外的所有节点;
基于已被查询节点确定起始侧节点组中的第一节点,确定由起始节点到起始侧节点组中的第一节点之间的第一路径。
可选地,确定由终止节点到终止侧节点组中的第二节点之间的第二路径,包括:
从终止侧节点组中查找与终止节点的相邻的第三目标节点,并将终止节点标记为查询完成节点;
从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第四目标节点标记为查询完成节点,第二目标节点不属于查询完成节点;
将第四目标节点作为第三目标节点,重复执行从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除终止节点外的所有节点;
基于查询完成节点确定终止侧节点组中的第二节点,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,将第一路径与第二路径进行拼接,包括:
将末端节点相同的第一路径与第二路径进行拼接。
可选地,若查询指令携带了路径长度的指定信息,方法还包括:
在起始节点以及终止节点之间的所有路径中,将路径长度与指定信息不对应的路径删除。
第二方面,本申请实施例提供了一种路径查询装置,该装置包括:
节点组划分模块,用于在接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
第一路径确定模块,用于确定由起始节点到起始侧节点组中的第一节点之间的第一路径,第一节点为起始侧节点组中无后继节点的节点;
第二路径确定模块,用于确定由终止节点到终止侧节点组中的第二节点之间的第二路径,第二节点为终止侧节点组中无后继节点的节点;
拼接模块,用于将第一路径与第二路径进行拼接,得到起始节点以及终止节点之间的所有路径。
可选地,第一路径确定模块具体用于:
通过路径线程池中的至少两个路径查询线程确定由起始节点到起始侧节点组中的第一节点之间的第一路径,
和/或,第二路径确定模块具体用于:
确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,起始侧节点组中的节点与起始节点之间的路径长度不大于第一预设长度,终止侧节点组中的节点与终止节点之间的路径长度不大于第二预设长度,第一预设长度与第二预设长度的度数差值不超过1,且第一预设长度与第二预设长度的和等于起始节点以及终止节点之间的最大路径长度。
可选地,第一路径确定模块具体用于:
从起始侧节点组中查找与起始节点的相邻的第一目标节点,并将起始节点标记为已被查询节点;
从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点,第二目标节点不属于已被查询节点;
将第二目标节点作为第一目标节点,重复执行从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除起始节点外的所有节点;
基于已被查询节点确定起始侧节点组中的第一节点,确定由起始节点到起始侧节点组中的第一节点之间的第一路径。
可选地,第二路径确定模块具体用于:
从终止侧节点组中查找与终止节点的相邻的第三目标节点,并将终止节点标记为查询完成节点;
从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第四目标节点标记为查询完成节点,第二目标节点不属于查询完成节点;
将第四目标节点作为第三目标节点,重复执行从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除终止节点外的所有节点;
基于查询完成节点确定终止侧节点组中的第二节点,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,拼接模块在将第一路径与第二路径进行拼接,具体用于:
将末端节点相同的第一路径与第二路径进行拼接。
可选地,若查询指令携带了路径长度的指定信息,上述装置还包括:
路径删除模块,用于在起始节点以及终止节点之间的所有路径中,将路径长度与指定信息不对应的路径删除。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的路径查询方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的路径查询方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,通过在进行起始节点以及终止节点之间路径的查询时,分别对起始侧节点组以及终止侧节点组进行路径查询,并将查询到的路径进行拼接,实现对全部路径的查询。本方案中,由于将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种路径查询方法的流程示意图;
图2为本申请实施例提供的一种路径查询装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
目前,cypher语句在实现查询两点间的n度以内全部路径时是单向查询的,即由起始节点起依次查询路径上的各节点直至查询到终止节点,这种方式会导致查询速度较慢,尤其是对于n的数值比较大的情况下,查询速度会异常缓慢。
另外,目前的路径查询多仅有一个线程进行,查询效率较低。
本申请实施例提供的路径查询方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题中的至少一个。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种路径查询方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:当接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
步骤S120:确定由起始节点到起始侧节点组中的第一节点之间的第一路径,第一节点为起始侧节点组中无后继节点的节点;
步骤S130:确定由终止节点到终止侧节点组中的第二节点之间的第二路径,第二节点为终止侧节点组中无后继节点的节点;
步骤S140:将第一路径与第二路径进行拼接,得到起始节点以及终止节点之间的所有路径。
本申请实施例中,目标节点集合包含起始节点、终止节点以及起始节点、终止节点之间的节点。
本申请实施例中,当接收到起始节点以及终止节点之间的全部路径的查询指令时,可以将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组。针对起始侧节点组内的节点以及终止侧节点组内的节点分别查询路径,而后将起始侧节点组内查询到的第一路径与及终止侧节点组内查询到的第二路径进行拼接,得到由起始节点到终止节点的全部路径。
本申请实施例中,查找第一路径时,可以由起始节点开始,沿关系网络查找位于路径上的各节点,直至查找的无后继节点的第一节点。第一路径可以为由起始节点到各第一节点构成的路径。查找第二路径时,可以由终止节点开始,沿关系网络查找位于路径上的各节点,直至查找的无后继节点的第二节点。第二路径可以为由终止节点到各第二节点构成的路径。
本申请实施例中,由于将目标节点集合中的节点划分至起始侧节点组内的节点以及终止侧节点组并分别查询路径,相较于直接在目标节点集合中查询路径,能够减少节点的查询数量,尤其是对于目标节点集合中节点众多,n的数值较大时,基于本方案能够极大地节点的查询数量。
起始侧节点组内以及终止侧节点组内的路径查询操作是相互独立的,为调用多个路径查询线程分别进行起始侧节点组以及终止侧节点组的路径查询操作提供了基础,能够有效提高路径查询效率,降低路径查询时间。
本申请实施例提供的方法,通过在进行起始节点以及终止节点之间路径的查询时,分别对起始侧节点组以及终止侧节点组进行路径查询,并将查询到的路径进行拼接,实现对全部路径的查询。本方案中,由于将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
本申请实施例的一种可选方式中,确定由起始节点到起始侧节点组中的第一节点之间的第一路径,和/或,确定由终止节点到终止侧节点组中的第二节点之间的第二路径,包括:
通过路径线程池中的至少两个路径查询线程确定由起始节点到起始侧节点组中的第一节点之间的第一路径,和/或,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
本申请实施例,可以预设置路径线程池,路径线程池中包括至少两个路径查询线程,以便实现通过多线程对起始侧节点组以及终止侧节点组分别进行路径查找,能够有效降低查询操作的耗时。
本申请实施例的一种可选方式中,起始侧节点组中的节点与起始节点之间的路径长度不大于第一预设长度,终止侧节点组中的节点与终止节点之间的路径长度不大于第二预设长度,第一预设长度与第二预设长度的度数差值不超过1,且第一预设长度与第二预设长度的和等于起始节点以及终止节点之间的最大路径长度。
本申请实施例,在确定起始侧节点组与终止侧节点组时,为保证起始侧节点组与终止侧节点组进行路径的并行查找时,对起始侧节点组与终止侧节点组查找的工作量以及查找时间均相近,可以根据起始节点以及终止节点之间的最大路径长度来对起始侧节点组与终止侧节点组进行划分。
具体而言,如果最大路径长度为偶数,那么第一预设长度与第二预设长度相同,即起始侧节点组中第一节点与起始节点的最大路径长度,等于终止侧节点组中第二节点与终止节点的最大路径长度。
如果最大路径长度为奇数,那么第一预设长度与第二预设长度相差为1,即起始侧节点组中第一节点与起始节点的最大路径长度,相较于终止侧节点组中第二节点与终止节点的最大路径长度,其路径长度差为1。
本申请实施例的一种可选方式中,确定由起始节点到起始侧节点组中的第一节点之间的第一路径,包括:
从起始侧节点组中查找与起始节点的相邻的第一目标节点,并将起始节点标记为已被查询节点;
从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点,第二目标节点不属于已被查询节点;
将第二目标节点作为第一目标节点,重复执行从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除起始节点外的所有节点;
基于已被查询节点确定起始侧节点组中的第一节点,确定由起始节点到起始侧节点组中的第一节点之间的第一路径。
本申请实施例中,在查询起始侧节点组中的第一节点之间的第一路径时,可以由起始节点起,查找与起始节点相邻的第一目标节点,而后分别由各第一目标节点起,查找与各第一目标节点相邻的第二目标节点。随后将各第二目标节点作为第一目标节点,重复查找相邻的第二目标节点,并重复将查找到的第二目标节点作为第一目标节点,直至查找到起始侧节点组内除起始节点之外的所有节点。起始节点与各第一目标节点在完成查询相邻节点的操作后,可以被标记为已被查询节点。每次查询相邻节点时,如果查询到的节点属于已被查询节点,可以认为在该节点处形成了带环路径,可以不将其确定为第二目标节点。
本申请实施例中,可以将第一目标节点存储于队列q1,将第二目标节点存储于队列q2,从队列q1中抽取第一目标节点,并对抽取的第一目标节点进行查找相邻的第二目标节点的操作,当队列q1中为空时(即队列q1中所有的第一目标节点被查找完成时),将队列q2转换为队列q1,继续进行相邻节点的查找。
本申请实施例中,可以在查询相邻节点时监控当前的查询度数,当前的查询度数等于起始侧节点组内最大的路径深度时,可以认为查找到起始侧节点组内除起始节点之外的所有节点。
本申请实施例中,在查询到起始侧节点组中的所有节点后,即获知了起始侧节点组中各节点之间的关系,因此可以构建起始侧节点组中的第一节点之间的第一路径。
本申请实施例的一种可选方式中,确定由终止节点到终止侧节点组中的第二节点之间的第二路径,包括:
从终止侧节点组中查找与终止节点的相邻的第三目标节点,并将终止节点标记为查询完成节点;
从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第四目标节点标记为查询完成节点,第二目标节点不属于查询完成节点;
将第四目标节点作为第三目标节点,重复执行从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除终止节点外的所有节点;
基于查询完成节点确定终止侧节点组中的第二节点,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
本申请实施例中,在查询终止节点到终止侧节点组中的第二节点之间的第二路径时,可以由终止节点起,查找与终止节点相邻的第三目标节点,而后分别由各第三目标节点起,查找与各第三目标节点相邻的第四目标节点。随后将各第四目标节点作为第三目标节点,重复查找相邻的第四目标节点,并重复将查找到的第四目标节点作为第三目标节点,直至查找到终止侧节点组内除终止节点之外的所有节点。终止节点与各第三目标节点在完成查询相邻节点的操作后,可以被标记为查询完成节点。每次查询相邻节点时,如果查询到的节点属于查询完成节点,可以认为在该节点处形成了带环路径,可以不将其确定为第四目标节点。
本申请实施例中,可以将第三目标节点存储于队列q3,将第四目标节点存储于队列q4,从队列q3中抽取第三目标节点,并对抽取的第三目标节点进行查找相邻的第四目标节点的操作,当队列q3中为空时(即队列q3中所有的第一目标节点被查找完成时),将队列q4转换为队列q3,继续进行相邻节点的查找。
本申请实施例中,可以在查询相邻节点时监控当前的查询度数,当前的查询度数等于终止侧节点组内最大的路径深度时,可以认为查找到终止侧节点组内除终止节点之外的所有节点。
本申请实施例中,在查询到终止侧节点组中的所有节点后,即获知了终止侧节点组中各节点之间的关系,因此可以构建终止侧节点组中的第二节点之间的第二路径。
本申请实施例的一种可选方式中,将第一路径与第二路径进行拼接,包括:
将末端节点相同的第一路径与第二路径进行拼接。
本申请实施例中,各第一路径可以将处于起始节点对端的节点作为末端节点,各第二路径可以将处于终止节点对端的节点作为末端节点,当第一路径与第二路径末端节点相同时,将第一路径与第二路径在末端节点处拼接,可以得到由起始节点到终止节点的一条完整路径。
本申请实施例中,在第一路径与第二路径拼接后,如果路径中存在环形部分,可以将环形部分从路径中剔除。
本申请实施例的一种可选方式中,若查询指令携带了路径长度的指定信息,方法还包括:
在起始节点以及终止节点之间的所有路径中,将路径长度与指定信息不对应的路径删除。
本申请实施例,查询指令可以携带路径长度的指定信息,即指定查询到路径的路径长度,可以在查询到起始节点到终止节点之间的全部路径后,将不满足指定的路径长度的路径删除。
基于与图1中所示的方法相同的原理,图2示出了本申请实施例提供的一种路径查询装置的结构示意图,如图2所示,该路径查询装置20可以包括:
节点组划分模块210,用于在接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
第一路径确定模块220,用于确定由起始节点到起始侧节点组中的第一节点之间的第一路径,第一节点为起始侧节点组中无后继节点的节点;
第二路径确定模块230,用于确定由终止节点到终止侧节点组中的第二节点之间的第二路径,第二节点为终止侧节点组中无后继节点的节点;
拼接模块240,用于将第一路径与第二路径进行拼接,得到起始节点以及终止节点之间的所有路径。
本申请实施例提供的装置,通过在进行起始节点以及终止节点之间路径的查询时,分别对起始侧节点组以及终止侧节点组进行路径查询,并将查询到的路径进行拼接,实现对全部路径的查询。本方案中,由于将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
可选地,第一路径确定模块具体用于:
通过路径线程池中的至少两个路径查询线程确定由起始节点到起始侧节点组中的第一节点之间的第一路径,
和/或,第二路径确定模块具体用于:
确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,起始侧节点组中的节点与起始节点之间的路径长度不大于第一预设长度,终止侧节点组中的节点与终止节点之间的路径长度不大于第二预设长度,第一预设长度与第二预设长度的度数差值不超过1,且第一预设长度与第二预设长度的和等于起始节点以及终止节点之间的最大路径长度。
可选地,第一路径确定模块具体用于:
从起始侧节点组中查找与起始节点的相邻的第一目标节点,并将起始节点标记为已被查询节点;
从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点,第二目标节点不属于已被查询节点;
将第二目标节点作为第一目标节点,重复执行从起始侧节点组中查找与第一目标节点的相邻的第二目标节点,并将第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除起始节点外的所有节点;
基于已被查询节点确定起始侧节点组中的第一节点,确定由起始节点到起始侧节点组中的第一节点之间的第一路径。
可选地,第二路径确定模块具体用于:
从终止侧节点组中查找与终止节点的相邻的第三目标节点,并将终止节点标记为查询完成节点;
从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第四目标节点标记为查询完成节点,第二目标节点不属于查询完成节点;
将第四目标节点作为第三目标节点,重复执行从终止侧节点组中查找与第三目标节点的相邻的第四目标节点,并将第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除终止节点外的所有节点;
基于查询完成节点确定终止侧节点组中的第二节点,确定由终止节点到终止侧节点组中的第二节点之间的第二路径。
可选地,拼接模块在将第一路径与第二路径进行拼接,具体用于:
将末端节点相同的第一路径与第二路径进行拼接。
可选地,若查询指令携带了路径长度的指定信息,上述装置还包括:
路径删除模块,用于在起始节点以及终止节点之间的所有路径中,将路径长度与指定信息不对应的路径删除。
可以理解的是,本实施例中的路径查询装置的上述各模块具有实现图1中所示的实施例中的路径查询方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述路径查询装置的各模块的功能描述具体可以参见图1中所示实施例中的路径查询方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的路径查询方法。
作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的路径查询方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过在进行起始节点以及终止节点之间路径的查询时,分别对起始侧节点组以及终止侧节点组进行路径查询,并将查询到的路径进行拼接,实现对全部路径的查询。本方案中,由于将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的路径查询方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过在进行起始节点以及终止节点之间路径的查询时,分别对起始侧节点组以及终止侧节点组进行路径查询,并将查询到的路径进行拼接,实现对全部路径的查询。本方案中,由于将节点划分至起始侧节点组以及终止侧节点组内,分别独立地进行起始侧节点组以及终止侧节点组的路径查询操作,减少了节点查询数量,为通过多个路径查询线程进行线程的并行查找提供了基础,能够有效提高路径查询效率,降低路径查询时间。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种路径查询方法,其特征在于,包括:
当接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径,所述第一节点为所述起始侧节点组中无后继节点的节点;
确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,所述第二节点为所述终止侧节点组中无后继节点的节点;
将所述第一路径与所述第二路径进行拼接,得到所述起始节点以及终止节点之间的所有路径;
所述确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径,包括:
从所述起始侧节点组中查找与所述起始节点的相邻的第一目标节点,并将所述起始节点标记为已被查询节点;
从所述起始侧节点组中查找与所述第一目标节点的相邻的第二目标节点,并将所述第一目标节点标记为已被查询节点,所述第二目标节点不属于已被查询节点;
将所述第二目标节点作为所述第一目标节点,重复执行从所述起始侧节点组中查找与所述第一目标节点的相邻的第二目标节点,并将所述第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除所述起始节点外的所有节点;
基于所述已被查询节点确定所述起始侧节点组中的第一节点,确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径;
所述确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,包括:
从所述终止侧节点组中查找与所述终止节点的相邻的第三目标节点,并将所述终止节点标记为查询完成节点;
从所述终止侧节点组中查找与所述第三目标节点的相邻的第四目标节点,并将所述第四目标节点标记为查询完成节点,所述第二目标节点不属于查询完成节点;
将所述第四目标节点作为所述第三目标节点,重复执行从所述终止侧节点组中查找与所述第三目标节点的相邻的第四目标节点,并将所述第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除所述终止节点外的所有节点;
基于所述查询完成节点确定所述终止侧节点组中的第二节点,确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径;
所述确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径和所述确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,包括:
通过路径线程池中的至少两个路径查询线程确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径和确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径。
2.根据权利要求1所述的方法,其特征在于,所述起始侧节点组中的节点与所述起始节点之间的路径长度不大于第一预设长度,所述终止侧节点组中的节点与所述终止节点之间的路径长度不大于第二预设长度,所述第一预设长度与所述第二预设长度的度数差值不超过1,且所述第一预设长度与所述第二预设长度的和等于所述起始节点以及所述终止节点之间的最大路径长度。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述将所述第一路径与所述第二路径进行拼接,包括:
将末端节点相同的所述第一路径与所述第二路径进行拼接。
4.根据权利要求1-2中任一项所述的方法,其特征在于,若所述查询指令携带了路径长度的指定信息,所述方法还包括:
在所述起始节点以及终止节点之间的所有路径中,将路径长度与所述指定信息不对应的路径删除。
5.一种路径查询装置,其特征在于,包括:
节点组划分模块,用于在接收到对目标节点集合中的起始节点以及终止节点之间路径的查询指令时,将目标节点集合中的节点划分至起始侧节点组以及终止侧节点组;
第一路径确定模块,用于确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径,所述第一节点为所述起始侧节点组中无后继节点的节点;
第二路径确定模块,用于确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,所述第二节点为所述终止侧节点组中无后继节点的节点;
拼接模块,用于将所述第一路径与所述第二路径进行拼接,得到所述起始节点以及终止节点之间的所有路径;
所述确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径,包括:
从所述起始侧节点组中查找与所述起始节点的相邻的第一目标节点,并将所述起始节点标记为已被查询节点;
从所述起始侧节点组中查找与所述第一目标节点的相邻的第二目标节点,并将所述第一目标节点标记为已被查询节点,所述第二目标节点不属于已被查询节点;
将所述第二目标节点作为所述第一目标节点,重复执行从所述起始侧节点组中查找与所述第一目标节点的相邻的第二目标节点,并将所述第一目标节点标记为已被查询节点的步骤,直至查找到起始侧节点组中除所述起始节点外的所有节点;
基于所述已被查询节点确定所述起始侧节点组中的第一节点,确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径;
所述确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,包括:
从所述终止侧节点组中查找与所述终止节点的相邻的第三目标节点,并将所述终止节点标记为查询完成节点;
从所述终止侧节点组中查找与所述第三目标节点的相邻的第四目标节点,并将所述第四目标节点标记为查询完成节点,所述第二目标节点不属于查询完成节点;
将所述第四目标节点作为所述第三目标节点,重复执行从所述终止侧节点组中查找与所述第三目标节点的相邻的第四目标节点,并将所述第三目标节点标记为已被查询节点的步骤,直至查找到终止侧节点组中除所述终止节点外的所有节点;
基于所述查询完成节点确定所述终止侧节点组中的第二节点,确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径;
所述确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径和所述确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径,包括:
通过路径线程池中的至少两个路径查询线程确定由所述起始节点到所述起始侧节点组中的第一节点之间的第一路径和确定由所述终止节点到所述终止侧节点组中的第二节点之间的第二路径。
6.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509121.4A CN112000695B (zh) | 2020-06-07 | 2020-06-07 | 路径查询方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509121.4A CN112000695B (zh) | 2020-06-07 | 2020-06-07 | 路径查询方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000695A CN112000695A (zh) | 2020-11-27 |
CN112000695B true CN112000695B (zh) | 2023-06-09 |
Family
ID=73467362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010509121.4A Active CN112000695B (zh) | 2020-06-07 | 2020-06-07 | 路径查询方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000695B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071875A (zh) * | 2019-05-05 | 2019-07-30 | 杭州复杂美科技有限公司 | 路径查询方法、数据传输方法、设备和存储介质 |
CN110941741A (zh) * | 2018-09-21 | 2020-03-31 | 百度在线网络技术(北京)有限公司 | 图数据的路径检索处理方法、装置、服务器及存储介质 |
-
2020
- 2020-06-07 CN CN202010509121.4A patent/CN112000695B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941741A (zh) * | 2018-09-21 | 2020-03-31 | 百度在线网络技术(北京)有限公司 | 图数据的路径检索处理方法、装置、服务器及存储介质 |
CN110071875A (zh) * | 2019-05-05 | 2019-07-30 | 杭州复杂美科技有限公司 | 路径查询方法、数据传输方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112000695A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110334154B (zh) | 基于区块链的分级存储方法及装置、电子设备 | |
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN111190904B (zh) | 一种图-关系数据库混合存储的方法和装置 | |
CN106326309B (zh) | 一种数据查询方法和装置 | |
US20150058352A1 (en) | Thin database indexing | |
US20160335320A1 (en) | Systems and methods of accessing distributed data | |
CN107203532A (zh) | 索引系统的构建方法、搜索的实现方法及装置 | |
CN103440249A (zh) | 一种非结构化数据快速检索的系统及方法 | |
CN111666289A (zh) | 数据的存储与查询方法、装置、电子设备及可读存储介质 | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN115220924A (zh) | 区块链系统中的交易冲突检测方法及区块链节点 | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
CN112765155B (zh) | 基于区块链的键值存储方法、装置、终端设备及介质 | |
CN112000695B (zh) | 路径查询方法、装置、电子设备及计算机可读存储介质 | |
US10303687B2 (en) | Concurrent processing of data sources | |
CN115114289A (zh) | 一种数据查询方法、装置及电子设备 | |
TW202004521A (zh) | 一種lsm樹的優化方法、裝置及電腦設備 | |
CN112488708B (zh) | 区块链账户关联性查询方法及虚假交易筛选方法 | |
CN112907198B (zh) | 业务状态流转维护方法、装置及电子设备 | |
CN112307272A (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
JP6323887B2 (ja) | ルートノードを変更するための方法および変更装置 | |
CN110825747A (zh) | 一种信息存取方法、装置和介质 | |
CN112632087B (zh) | 基于范围简图的有序链表快速查询方法和装置 | |
CN110888870A (zh) | 数据存储表的查询方法、分区服务器及电子设备 | |
CN117112575B (zh) | 电路元素的名称管理方法、系统及查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220914 Address after: 12 / F, 15 / F, 99 Yincheng Road, Pudong New Area pilot Free Trade Zone, Shanghai, 200120 Applicant after: Jianxin Financial Science and Technology Co.,Ltd. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |