CN115905630A - 一种图数据库查询方法、装置、设备及存储介质 - Google Patents
一种图数据库查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115905630A CN115905630A CN202211467949.3A CN202211467949A CN115905630A CN 115905630 A CN115905630 A CN 115905630A CN 202211467949 A CN202211467949 A CN 202211467949A CN 115905630 A CN115905630 A CN 115905630A
- Authority
- CN
- China
- Prior art keywords
- point
- query
- target
- node
- edge
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种图数据库查询方法、装置、设备及存储介质,涉及图数据库查询技术领域。该方法包括:对图查询语句进行解析,解析得到查询规则;若查询规则中存在从图数据库的边开始,则根据图查询语句中的边索引,从图数据库中确定与边索引相关联的至少一个候选边;若查询规则中存在忽略边方向,则获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;对N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;根据M个目标对点组合信息,确定目标节点,并从目标节点开始,在图数据库中查询,得到该图查询语句的查询结果。
Description
技术领域
本申请涉及图数据库查询技术领域,尤其涉及一种图数据库查询方法、装置、设备及存储介质。
背景技术
图数据库是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理系统。图数据库属于非关系型数据库(NoSQL)。图数据库对数据的存储、查询以及数据结构都和关系型数据库有很大的不同。图数据结构直接存储了节点之间的依赖关系,而关系型数据库和其他类型的非关系型数据库则以非直接的方式来表示数据之间的关系。与传统的关系型数据库相比,图数据库能以较灵活的形式,即顶点和边的组合来适应各类业务场景,并能以高效精简的图查询语言实现复杂关系网络的分析。
然而,随着业务场景的不断复杂化,顶点和边逐渐包含更多的属性,即顶点对应的信息和边对应的信息逐步丰富,而丰富的顶点和边的信息则使得业务场景的处理复杂化。在查询过程中,降低了处理效率,且容易导致查询结果的不准确。
因此,如何提高查询的效率以及准确性,是目前亟需解决的问题。
发明内容
本发申请提供了一种图数据库查询方法,用以提高查询的效率以及准确性。
第一方面,提供一种图数据库查询方法,包括:
对图查询语句进行解析,解析得到查询规则;若所述查询规则中存在从图数据库的边开始,则根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;若所述查询规则中存在忽略边方向,则获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;其中,所述对点信息用于表征边连接的节点上的实体,所述N为大于0的整数;对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息,所述M为小于或等于N的整数;根据所述M个目标对点组合信息,确定目标节点,并从所述目标节点开始,在所述图数据库中查询,得到所述图查询语句的查询结果。
在一种可能实现的方式中,所述对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息之后,还包括:
在所述M个目标对点组合信息中,将节点上为所述目标实体的标记上第一标签,剩余实体标记上第二标签;所述根据所述M个目标对点组合信息,确定目标节点,包括:
若所述查询规则中指定所述第一标签,则将所述目标实体所在的节点作为所述目标节点;或者若所述查询规则中指定所述第二标签,则将所述剩余实体所在的节点作为所述目标节点;或者若所述查询规则中未指定所述第一标签或所述第二标签,则将各实体所在的节点作为所述目标节点。
在一种可能实现的方式中,所述对所述N个候选对点组合信息执行过滤操作,包括:
根据所述图查询语句中的目标实体,分别与所述N个候选对点组合信息中的实体进行比对;将所述N个候选对点组合信息中不包括有所述目标实体的候选对点组合信息进行过滤。
在一种可能实现的方式中,所述获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,包括:
根据第一获选边的第一标识,确定与所述第一获选边相连接的第一节点和第二节点;其中,所述第一获选边为所述各候选边的任意一条边;将所述第一节点上的第一实体和所述第二节点上的第二实体组合成一对。
第二方面,提供一种图数据库查询装置,包括:查询模块、确定模块、组合模块;
所述查询模块,用于对图查询语句进行解析,解析得到查询规则;若所述查询规则中存在从图数据库的边开始,则指示所述确定模块根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;以及,用于若所述查询规则中存在忽略边方向,则指示所述组合模块获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,指示所述组合模块对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;以及,用于根据所述M个目标对点组合信息,确定目标节点,并从所述目标节点开始,在所述图数据库中查询,得到所述图查询语句的查询结果;所述确定模块,用于根据所述查询模块的指示,根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;所述组合模块,用于根据所述查询处理模块的指示,获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;其中,所述对点信息用于表征边连接的节点上的实体,所述N为大于0的整数,所述M为小于或等于N的整数。
在一种可能实现的方式中,所述装置还包括标记模块;
所述标记模块,用于在所述M个目标对点组合信息中,将节点上为所述目标实体的标记上第一标签,剩余实体标记上第二标签;
所述查询模块,具体用于:
若所述查询规则中指定所述第二标签,则将所述剩余实体所在的节点作为所述目标节点;或者若所述查询规则中指定所述第一标签,则将所述目标实体所在的节点作为所述目标节点;或者若所述查询规则中未指定所述第一标签或第二标签,则将各实体所在的节点作为所述目标节点。
在一种可能实现的方式中,所述组合模块具体用于:
根据所述图查询语句中的目标实体,分别与所述N个候选对点组合信息中的实体进行比对;将所述N个候选对点组合信息中不包括有所述目标实体的候选对点组合信息进行过滤。
在一种可能实现的方式中,所述组合模块,具体用于:
根据第一获选边的第一标识,确定与所述第一获选边相连接的第一节点和第二节点;其中,所述第一获选边为所述各候选边的任意一条边;将所述第一节点上的第一实体和所述第二节点上的第二实体组合成一对。
第三方面,提供一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现如第一方面中任一项所述的方法步骤。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的方法步骤。
本申请实施例中,由于对图查询语句进行解析,若解析出第一查询规则为从图数据库的边开始,则根据图查询语句中的边索引,从图数据库中确定与边索引相关联的至少一个候选边;若解析出第二查询规则为忽略边方向,则获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息,因此在忽略边方向进行图查询的情况下,通过成对组合,可以突出同一条边的对点之间联系,缩小后续的查询范围,提高查询准确率;再由于对N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息,因此,进一步的缩小后续的查询范围,提高查询效率;再由于根据M个目标对点组合信息,确定目标节点,并从目标节点开始,在图数据库中查询,得到图查询语句的查询结果,因此在过滤完成后,可以精确落实到具体的目标节点,从目标节点开始查询,并得到查询结果,从而提高该结果的准确性。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为现有的忽略边方向查询的查询结果示意图;
图2为本申请实施例适用的应用场景示意图;
图3为本申请实施例提供的一种图数据库查询方法的流程图;
图4为本申请实施例提供的一种边与对点之间的联系示意图;
图5为本申请实施例提供的一种图数据库查询装置的结构示意图;
图6为本申请实施例提供的另一种图数据库查询装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
为了更好地理解本申请实施例,下面首先对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)图数据库是一种用来存储图结构的数据库。图结构可包括节点、边和属性,可称之为属性图。
(2)属性图定义了一种图模型,一个属性图是由顶点(Vertex)、边(Edge)、标签(Label)和属性(Property)组成的有向图,其中顶点也被称为节点(Node),边也被称为关系(Relationship)。
(3)有向图是一幅具有方向性的图,是由一个顶点和一组有方向的边组成的,每条方向的边都连着一对有序的顶点。
(4)图是由两个元素组成:节点和关系。每个节点上代表一个实体(例如人、地、事物、类别或其他数据),每个关系代表两个节点的关联方式。
(5)JanusGraph是一个图形数据库引擎。其本身专注于紧凑图序列化、丰富图数据建模、高效的查询执行。janusGraph创建的图是基于属性图模型的。JanusGraph以Hbase作为存储后端(即图数据实际是存储在Hbase中的),在Hbase中一行数据就是一个点,一行记录包含了这个点的所有属性和与它相连的边,每一个属性、每一条边都是一个独立的存储单元(cell)。
(6)Hbase是一种NOSQL数据库,是一个分布式的、面向列的开源数据库,在Hbase中,表是行的集合,行是列簇的集合,列簇是列的集合,列是键值对的集合。HBase中的一个存储单元称为cell,由row(行)和column(列)确定。
(7)TinkerPop是一个面向实时事务处理(OLAP)以及批量、分析型(OLTP)的开源的图计算框架。而Gremlin是TinkerPop图形遍历语言,使用户能够以简单的代码进行复杂的图形遍历,可使用Gremlin(图查询语句)对janusGraph进行增、删、改、查。
目前,在使用图数据库进行查询时,查询方式可包括两种,一种是从点出发,另一种是从边出发。当业务请求中需要忽略边方向进行图查询时,如果从边出发查询就可能出现一定的问题。
以查询语句为在A市与目标对象1同行的对象的父亲为例,对查询语句进行解析,确定出查询规则为:首先取符合地点是A市的同行关系,再在同行关系的2相连点中找到有目标对象1的对象,然后根据父亲关系找到各自的父亲,最后返回查询结果,如图1所示,包括:同行1,目标对象1,目标对象1父亲;同行1,对象2,对象2父亲;同行2,对象3,对象3父亲;同行2,目标对象1,目标对象1父亲,这并不是用户所需的查询结果。
若将查询方式改为从目标对象1所在的节点出发,在一些情况下会严重影响性能,例如,目标对象1重名的人有1万人,在A市的同行关系有5条,如果从目标对象1所在的节点出发,可能要循环遍历完这1万个重名的目标对象1,才能找到那5条在A市的同行关系,增加了图数据库查询量,降低了处理效率。
鉴于此,本申请提供一种图数据库查询方法,用以提高查询效率和准确率。
下面结合附图,对本申请实施例进行详细描述。
下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
图2为本申请实施例适用的应用场景示意图。如图所示,该场景主要包括:终端20、服务器21。图2为本申请实施例适用的应用场景示意图。如图所示,该应用场景主要包括:终端20、服务器21。其中,终端20和服务器21之间可通过通信网络进行信息交互,该通信网络采用的通信方式可包括:无线通信方式和有线通信方式。
示例性的,终端20可通过蜂窝移动通信技术接入网络,与服务器21进行通信,该蜂窝移动通信技术,可包括第五代移动通信(5th Generation Mobile Networks,5G)技术。
示例性的,终端20可通过短距离无线通信方式接入网络,与服务器21进行通信,该短距离无线通信方式,可包括无线保真(Wireless Fidelity,Wi-Fi)技术。
本申请实施例对上述设备的数量不做任何限制,如图1所示,仅以终端20和服务器21为例进行描述,下面对上述各设备及其各自的功能进行简要介绍。
终端20是一种可以向用户提供语音和/或数据连通性的设备,包括:具有无线连接功能的手持式终端设备、车载终端设备等。
示例性的,终端20包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internet Device,MID)、可穿戴设备,虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备、工业控制中的无线终端设备、无人驾驶中的无线终端设备、智能电网中的无线终端设备、运输安全中的无线终端设备、智慧城市中的无线终端设备,或智慧家庭中的无线终端设备等。
此外,终端20上可以安装有图数据库查询相关的客户端,该客户端可以是软件(例如,APP、浏览器等),也可以是网页、小程序等。
在本申请实施例中,终端20可以使用上述图数据库查询相关的客户端,并且能够与服务器21之间进行智能问答场景相关的信息交互。举例来说,终端20可向服务器21发送查询请求,服务器21接收到该终端20发送的图查询语句后,可对该图查询语句进一步进行解析、处理、查询后,输出该图查询语句的查询结果。
进一步的,服务器21可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
进一步的,在本申请实施例中,上述服务器21可以搭载有与上述客户端对应的图数据库查询系统,该图数据库查询系统用于响应于输入图查询语句的用户操作,对输入的图查询语句进行分析、处理后,输出图查询语句的准确结果。
当然,本申请实施例提供的方法并不限于图2所示的应用场景,还可以用于其它可能的应用场景,本申请实施例并不进行限制。对于图2所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并执行。
图3为本申请实施例提供的一种图数据库查询方法的流程图。该流程可由图数据库查询装置所执行,该装置可通过软件的方式实现,也可通过硬件的方式实现,还可通过软件和硬件结合的方式实现。如图所示,该流程包括如下步骤:
301:对图查询语句进行解析,解析得到查询规则。
可选的,该步骤的交互过程具体可以是终端(如图2中的终端20)向服务器(如图2中的服务器21)发送查询请求,该查询请求中携带有图查询语句,服务器接收到该图查询语句时,对其进行解析,确定出一系列的查询规则,便于后续在图数据库的处理和查询。
302:判断上述查询规则中是否存在从图数据库的边开始,若是,则转入303,若否,则按照其他查询策略进行后续查询。
该步骤中,以查询在A市与目标对象1同行的对象的父亲为例,可解析出在该场景下最优的图数据库查询方式应该从同行关系的边出发进行查询。
303:根据图查询语句中的边索引,从图数据库中确定与边索引相关联的至少一个候选边。
以上述查询在A市与目标对象1同行的对象的父亲为例,边索引为A市、目标实体为目标对象1,根据该A市,从图数据库中确定与A市相关联的多个候选边(同行边)。
在一些实施例中,还可将该多个候选边的信息(例如,边的标识、边的关系类型、边的方向、边的对点信息等)进行存储,便于后续查询的使用,如表1所示,示例性示出了同行边的信息示例表。
表1:同行边的信息示例表
边标识 | 边方向 | 边连接的节点上的对点标识 |
e1 | out | person1(目标对象1) |
e1 | in | Person2(对象2) |
e2 | out | Person3(对象3) |
e2 | in | person1(目标对象1) |
e3 | out | Person2(对象2) |
e3 | in | Person3(对象3) |
由于图数据库是根据边切分的,一条边存储在2个相连的点上,因此如表1所示,边存储在person2点上时,该边的方向是out,对点是person1;同一id的边存储在person1上时,边的方向是in,对点是person2。
304:判断该查询规则中是否存在忽略边方向,若是,则转入305,若否,则按照原有的查询规则进行后续查询。
可选的,可根据图查询语句使用的gremlin语法判断查询规则中是否存在忽略边方向。具体的,若解析到图查询语句使用的Gremlin语法有bothV(),则表明忽略边方向进行查询,并转入305。
在一些实施例中,若解析到图查询语句使用的Gremlin语法是outV(),则表明未忽略边方向,需按照其他查询策略进行后续查询,例如,当语法是outV()时,获取边的out方向的对点,并判断各节点上的实体(对点标识)是否为目标对象1,通过上述表1,确定出只有e1的out方向是目标对象1,便取e1边的另一方向的点person2继续图查询,得到查询结果为person2的父亲。
在另一些实施例中,若解析到图查询语句使用的Gremlin语法是inV(),则表明也未忽略边方向,需按照其他查询策略进行后续查询,例如,当语法是inV()时,获取边的in方向的对点,并判断各对点(节点)上的实体是否为目标对象1(person1),通过上述表1,确定出只有e1的out方向是目标对象1,便取e1边的另一方向的点person3继续图查询,得到查询结果为person3的父亲。
305:获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息。
该对点信息用于表征边连接的节点上的实体,N为大于0的整数。
当确定出查询规则中存在忽略边方向时,获取包括in方向和out方向的边的对点信息,如上述表1可得到:person1、person2、person3、person1、person2、person3。
可选的,将各对点信息进行成对组合,得到N个候选对点组合信息,可通过如下方式:根据第一获选边的第一标识,确定与第一获选边相连接的第一节点和第二节点,该第一获选边为各候选边的任意一条边;将第一节点上的第一实体和第二节点上的第二实体组合成一对。
举例来讲,以上述表1为例中的e1为例,根据该e1可确定出与e1相连接的第一节点为person1对应的节点,第二节点为person2对应的节点,从而将person1和person2组成一对,以此类推,可得到:Pair1<person1,person2>、Pair2<person3,person1>、Pair3<person2,person3>,从而在忽略边方向进行图查询的情况下,通过成对组合,可以突出同一条边的对点之间联系,缩小后续的查询范围,提高查询效率。如图4所示,示例性示出了边与对点之间的联系示意图。person1、person2基于e1组合成一对,person1、person3基于e2组合成一对,person2、person3基于e3组合成一对。
306:对上述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息。该M为小于或等于N的整数。
可选的,对N各候选对点组合信息执行过滤操作,可通过如下方式:
根据图查询语句中的目标实体,分别与N个候选对点组合信息中的实体进行比对;将N个候选对点组合信息中不包括有目标实体的候选对点组合信息进行过滤。
举例来讲,目标实体为person1(目标对象1),分别与上述Pair1<person1,person2>、Pair2<person3,person1>、Pair3<person2,person3>中的实体比对,确定出Pair1<person1,person2>、Pair2<person3,person1>包括有person1,符合条件要求;Pair3<person2,person3>不包括有person1,便可将该Pair3<person2,person3>的相关信息过滤,例如,删除表1中e3的行信息,从而进一步缩小后续查询或处理的范围,提高查询的效率。
可选的,对N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息之后,还可对各实体打上标签,从而便于区分目标对象和其他对象,具体的,在M个目标对点组合信息中,将节点上为目标实体的标记上第一标签(例如,打上标签src),剩余实体标记上第二标签(例如,打上target)。举例来讲,以上述符合条件要求e1和e2对应的组(air1和pair2)为例,将两组中的person1标记上src,将person2、person3标记上target,得到的结果是:Pair1<src:person1,target:person2>、Pair2<target:person3,src:person1>,从而区分目标对象1与同行的对象,便于后续可依据标签进一步进行查询范围的锁定。
307:根据上述M个目标对点组合信息,确定目标节点,并从目标节点开始,在图数据库中查询,得到图查询语句的查询结果。
可选的,确定目标节点,可判断上述查询规则中是否指定标签,具体的,可包括以下三种情况:
情况1:若查询规则中指定了第一标签,则将目标实体所在的节点作为目标节点。举例来讲,若查询规则指定了src,则将上述标签后的Pair1和Pair2中的person1所在的节点作为目标节点,执行后续的查询操作。
针对情况1,查询轨迹可以是:e1->person1->hasfateher->person1Fahter、e2->person1->hasfateher->person1Fahter。
情况2:若查询规则中指定了第二标签,则将剩余实体所在的节点作为目标节点。举例来讲,若查询规则指定了target,则将上述标签后的Pair1中的person2,以及Pair2中的person3所在的节点作为目标节点,执行后续的查询操作。
针对情况2,查询轨迹可以是:e1->person2->hasfateher->person2Fahter、e2->person3->hasfateher->person3Fahter。
情况3:若查询规则中未指定第一标签或第二标签,则将各实体所在的节点作为目标节点。举例来讲,若查询规则未指定标签,则将上述标签后的Pair1中的person1、person2,以及Pair2中的person1、person3各自所在的节点作为目标节点,执行后续的查询操作。
针对情况3,查询轨迹可以是:e1->person1->hasfateher->person1Fahter、e1->person2->hasfateher->person2Fahter、e2->person3->hasfateher->person3Fahter、e2->person1->hasfateher->person1Fahter。
本申请实施例中,新增的查询规则(将对点信息进行成对组合、为对点打上标签进行区分),使用的新gremlin语句编写难度低,基于该新增的查询规则,可以准确锁定目标节点,从目标节点开始查询,并得到查询结果,提高了该结果的准确性,且可以满足用户不同的查询需求,提高用户体验。例如,以上述以查询语句为在A市与目标对象1同行的对象的父亲为例,对该查询语句进行解析,解析出的查询规则为:首先,获取符合地点是A市的同行关系(对应图2中的303);再在同行关系的2相连点中找到有目标对象1的对象的对点,可以理解为,将同行关系的2个相连点成对组合,筛选出有目标对象1的组合对,并指定了标签(tagert),然后根据父亲关系找到目标对象1的对点的父亲,最后返回查询结果,包括:同行1,对象2,对象2父亲,以及同行2,对象3,对象3父亲。
本申请实施例中,由于对图查询语句进行解析,若解析出第一查询规则为从图数据库的边开始,则根据图查询语句中的边索引,从图数据库中确定与边索引相关联的至少一个候选边;若解析出第二查询规则为忽略边方向,则获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息,因此在忽略边方向进行图查询的情况下,通过成对组合,可以突出同一条边的对点之间联系,缩小后续的查询范围,提高查询准确率;再由于对N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息,因此,进一步的缩小后续的查询范围,提高查询效率;再由于根据M个目标对点组合信息,确定目标节点,并从目标节点开始,在图数据库中查询,得到图查询语句的查询结果,因此在过滤完成后,可以精确落实到具体的目标节点,从目标节点开始查询,并得到查询结果,从而提高该结果的准确性。
需要说明的是,上述图3所示的图数据库查询方法,包括但不仅限于应用在以下所举例的设备或平台。
社交平台,例如,商品推荐、视频推荐、内容推荐、好友推荐等,都可基于已有的边关系进行推荐。
医疗设备,例如,智能诊断、电子病例,可基于病人的病理特征、既往病史、历史用药等,多维数据构建的图数据库形成决策树或知识图谱进行智能诊断。
金融平台,例如,通过建立客户关系的图数据库,根据客户社会关系、近期交易记录等,决定是否授权放贷。
基于相同的技术构思,本申请实施例中还提供了一种图数据库查询装置,该装置可实现本申请实施例中上述图数据库查询方法的流程。
图5为本申请实施例提供的一种图数据库查询装置的结构示意图。如图所示,该装置包括:查询模块501、确定模块502、组合模块503。
查询模块501,用于对图查询语句进行解析,解析得到查询规则;若所述查询规则中存在从图数据库的边开始,则指示所述确定模块根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;以及,用于若所述查询规则中存在忽略边方向,则指示所述组合模块获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,指示所述组合模块对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;以及,用于根据所述M个目标对点组合信息,确定目标节点,并从所述目标节点开始,在所述图数据库中查询,得到所述图查询语句的查询结果。
确定模块502,用于根据所述查询模块的指示,根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边。
组合模块503,用于根据所述查询处理模块的指示,获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;其中,所述对点信息用于表征边连接的节点上的实体,所述N为大于0的整数,所述M为小于或等于N的整数。
可选的,组合模块503具体用于:
根据所述图查询语句中的目标实体,分别与所述N个候选对点组合信息中的实体进行比对;将所述N个候选对点组合信息中不包括有所述目标实体的候选对点组合信息进行过滤。
可选的,组合模块503,具体用于:
根据第一获选边的第一标识,确定与所述第一获选边相连接的第一节点和第二节点;其中,所述第一获选边为所述各候选边的任意一条边;将所述第一节点上的第一实体和所述第二节点上的第二实体组合成一对。
在另一些实施例中,除了上述图5所示的各模块以外,还可包括标记模块,图6为本申请实施例提供的另一种图数据库查询装置的结构示意图。如图所示,该装置包括:查询模块501、确定模块502、组合模块503、标记模块601。其中,查询模块501、确定模块502、组合模块503的相关描述参照图5所示,在此不再重复描述。
标记模块601,用于在所述M个目标对点组合信息中,将节点上为所述目标实体的标记上第一标签,剩余实体标记上第二标签;以使查询模块501,具体用于:
若所述查询规则中指定所述第二标签,则将所述剩余实体所在的节点作为所述目标节点;或者若所述查询规则中指定所述第一标签,则将所述目标实体所在的节点作为所述目标节点;或者若所述查询规则中未指定所述第一标签或第二标签,则将各实体所在的节点作为所述目标节点。
在此需要说明的是,本申请实施例提供的上述装置,能够实现上述图数据库查询方法实施例中的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
基于相同的技术构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种图数据库查询装置的功能。
图7为本申请实施例提供的电子设备的结构示意图。
至少一个处理器701,以及与至少一个处理器701连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中是以处理器701和存储器702之间通过总线700连接为例。总线700在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线700可以分为地址总线、数据总线、控制总线等,为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器701也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前文论述的一种图数据库查询方法。处理器701可以实现图5或图6所示的装置中各个模块的功能。
其中,处理器701是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、驾驶人员界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种图数据库查询方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器701进行设计编程,可以将前述实施例中介绍的一种图数据库查询方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图3所示的实施例的一种图数据库查询方法。如何对处理器701进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
在此需要说明的是,本申请实施例提供的上述通电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的一种图数据库查询方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行上述实施例中的一种图数据库查询方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程图数据库查询设备的处理器以产生一个机器,使得通过计算机或其他可编程图数据库查询设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程图数据库查询设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程图数据库查询设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (10)
1.一种图数据库查询方法,其特征在于,包括:
对图查询语句进行解析,解析得到查询规则;
若所述查询规则中存在从图数据库的边开始,则根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;
若所述查询规则中存在忽略边方向,则获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;其中,所述对点信息用于表征边连接的节点上的实体,所述N为大于0的整数;
对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息,所述M为小于或等于N的整数;
根据所述M个目标对点组合信息,确定目标节点,并从所述目标节点开始,在所述图数据库中查询,得到所述图查询语句的查询结果。
2.如权利要求1所述的方法,其特征在于,所述对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息之后,还包括:
在所述M个目标对点组合信息中,将节点上为所述目标实体的标记上第一标签,剩余实体标记上第二标签;
所述根据所述M个目标对点组合信息,确定目标节点,包括:
若所述查询规则中指定所述第一标签,则将所述目标实体所在的节点作为所述目标节点;或者
若所述查询规则中指定所述第二标签,则将所述剩余实体所在的节点作为所述目标节点;或者
若所述查询规则中未指定所述第一标签或所述第二标签,则将各实体所在的节点作为所述目标节点。
3.如权利要求1所述的方法,其特征在于,所述对所述N个候选对点组合信息执行过滤操作,包括:
根据所述图查询语句中的目标实体,分别与所述N个候选对点组合信息中的实体进行比对;
将所述N个候选对点组合信息中不包括有所述目标实体的候选对点组合信息进行过滤。
4.如权利要求1所述的方法,其特征在于,所述获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,包括:
根据第一获选边的第一标识,确定与所述第一获选边相连接的第一节点和第二节点;其中,所述第一获选边为所述各候选边的任意一条边;
将所述第一节点上的第一实体和所述第二节点上的第二实体组合成一对。
5.一种图数据库查询装置,其特征在于,包括:查询模块、确定模块、组合模块;
所述查询模块,用于对图查询语句进行解析,解析得到查询规则;若所述查询规则中存在从图数据库的边开始,则指示所述确定模块根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;以及,用于若所述查询规则中存在忽略边方向,则指示所述组合模块获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,指示所述组合模块对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;以及,用于根据所述M个目标对点组合信息,确定目标节点,并从所述目标节点开始,在所述图数据库中查询,得到所述图查询语句的查询结果;
所述确定模块,用于根据所述查询模块的指示,根据所述图查询语句中的边索引,从所述图数据库中确定与所述边索引相关联的至少一个候选边;
所述组合模块,用于根据所述查询处理模块的指示,获取各候选边各自对应的对点信息,并将各对点信息进行成对组合,得到N个候选对点组合信息;以及,对所述N个候选对点组合信息执行过滤操作,得到符合条件要求的M个目标对点组合信息;其中,所述对点信息用于表征边连接的节点上的实体,所述N为大于0的整数,所述M为小于或等于N的整数。
6.如权利要求5所述的装置,其特征在于,所述装置还包括标记模块;
所述标记模块,用于在所述M个目标对点组合信息中,将节点上为所述目标实体的标记上第一标签,剩余实体标记上第二标签;
所述查询模块,具体用于:
若所述查询规则中指定所述第二标签,则将所述剩余实体所在的节点作为所述目标节点;或者
若所述查询规则中指定所述第一标签,则将所述目标实体所在的节点作为所述目标节点;或者
若所述查询规则中未指定所述第一标签或第二标签,则将各实体所在的节点作为所述目标节点。
7.如权利要求5所述的装置,其特征在于,所述组合模块具体用于:
根据所述图查询语句中的目标实体,分别与所述N个候选对点组合信息中的实体进行比对;
将所述N个候选对点组合信息中不包括有所述目标实体的候选对点组合信息进行过滤。
8.如权利要求5所述的装置,其特征在于,所述组合模块,具体用于:
根据第一获选边的第一标识,确定与所述第一获选边相连接的第一节点和第二节点;其中,所述第一获选边为所述各候选边的任意一条边;
将所述第一节点上的第一实体和所述第二节点上的第二实体组合成一对。
9.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-4中任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211467949.3A CN115905630A (zh) | 2022-11-22 | 2022-11-22 | 一种图数据库查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211467949.3A CN115905630A (zh) | 2022-11-22 | 2022-11-22 | 一种图数据库查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905630A true CN115905630A (zh) | 2023-04-04 |
Family
ID=86494496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211467949.3A Pending CN115905630A (zh) | 2022-11-22 | 2022-11-22 | 一种图数据库查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905630A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383454A (zh) * | 2023-04-10 | 2023-07-04 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
CN117591564A (zh) * | 2024-01-11 | 2024-02-23 | 支付宝(杭州)信息技术有限公司 | 一种针对图数据库的图数据查询方法及相关设备 |
-
2022
- 2022-11-22 CN CN202211467949.3A patent/CN115905630A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383454A (zh) * | 2023-04-10 | 2023-07-04 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
CN116383454B (zh) * | 2023-04-10 | 2024-01-30 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
CN117591564A (zh) * | 2024-01-11 | 2024-02-23 | 支付宝(杭州)信息技术有限公司 | 一种针对图数据库的图数据查询方法及相关设备 |
CN117591564B (zh) * | 2024-01-11 | 2024-05-28 | 支付宝(杭州)信息技术有限公司 | 一种针对图数据库的图数据查询方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019218B (zh) | 数据存储与查询方法及设备 | |
CN115905630A (zh) | 一种图数据库查询方法、装置、设备及存储介质 | |
CN111159184B (zh) | 元数据追溯方法、装置及服务器 | |
CN104809242A (zh) | 一种基于分布式结构的大数据聚类方法和装置 | |
CN111651641B (zh) | 一种图查询方法、装置及存储介质 | |
CN104820708A (zh) | 一种基于云计算平台的大数据聚类方法和装置 | |
CN114579584B (zh) | 数据表处理方法、装置、计算机设备和存储介质 | |
CN113268667B (zh) | 一种基于中文评论情感引导的序列推荐方法及系统 | |
CN115048469A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN116719822B (zh) | 一种海量结构化数据的存储方法及系统 | |
CN115982346A (zh) | 一种问答库构建方法、终端设备及存储介质 | |
CN112069269B (zh) | 基于大数据和多维特征的数据溯源方法及大数据云服务器 | |
CN117972048A (zh) | 一种问答处理方法及装置 | |
CN115658680A (zh) | 数据存储方法、数据查询方法和相关装置 | |
CN108241622B (zh) | 一种查询脚本的生成方法及装置 | |
CN114564621A (zh) | 一种关联数据的方法、装置、设备及可读存储介质 | |
WO2021135103A1 (zh) | 一种语义分析方法、装置、计算机设备及存储介质 | |
CN113821514A (zh) | 数据拆分方法、装置、电子设备和可读存储介质 | |
CN114328606A (zh) | Sql执行效率的提高方法、设备及存储介质 | |
CN113722296A (zh) | 一种农业信息处理方法、装置、电子设备及存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
CN110096529B (zh) | 一种基于多维矢量数据的网络数据挖掘方法和系统 | |
CN116226686B (zh) | 一种表格相似性分析方法、装置、设备和存储介质 | |
CN117097617A (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 |