CN114741570A - 图数据库的查询方法、索引创建方法及相关设备 - Google Patents

图数据库的查询方法、索引创建方法及相关设备 Download PDF

Info

Publication number
CN114741570A
CN114741570A CN202210068412.3A CN202210068412A CN114741570A CN 114741570 A CN114741570 A CN 114741570A CN 202210068412 A CN202210068412 A CN 202210068412A CN 114741570 A CN114741570 A CN 114741570A
Authority
CN
China
Prior art keywords
edge
joint index
attributes
attribute
current
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
Application number
CN202210068412.3A
Other languages
English (en)
Inventor
俞毅
周明伟
李丛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202210068412.3A priority Critical patent/CN114741570A/zh
Publication of CN114741570A publication Critical patent/CN114741570A/zh
Priority to PCT/CN2023/072091 priority patent/WO2023138505A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

本申请公开了一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质。该查询方法包括:获取查询条件;从图数据库的联合索引中查找目标联合索引,目标联合索引的属性符合查询条件,联合索引的属性包括边的属性和边关联的两个节点的属性;将具有目标联合索引的目标边关联的两个目标节点,作为数据查询结果。通过上述方式,能够提高查询效率,扩大适用范围。

Description

图数据库的查询方法、索引创建方法及相关设备
技术领域
本申请涉及图数据库技术领域,特别是涉及一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质。
背景技术
图数据库(Januspraph)是一个开源的分布式数据库,图数据库中的图数据是基于属性图模型的。属性图由节点(Node)、边(Edge)、节点标签(Label)和属性(Property)组成的有向图。其中,节点表示实体,边表示关系。实体可以是自然界任何能够被描述的主体,例如人、车、事件、类别等等。
如果直接从图数据库查询数据,查询方式为全图扫描,查询效率极低。为了提高查询效率,现有的方法为,通过为图数据库创建索引,来加速从图数据库查询数据的效率。但是,现有的基于索引从图数据库查询数据的方法查询效率仍然不够高,且适用范围受限。
发明内容
本申请提供一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质,能够解决现有的基于索引从图数据库查询数据的方法查询不够高、适用范围受限的问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种图数据库的数据查询方法。该方法包括:获取查询条件;从图数据库的联合索引中查找目标联合索引,目标联合索引的属性符合查询条件,联合索引的属性包括边的属性和边关联的两个节点的属性;将具有目标联合索引的目标边关联的两个目标节点,作为数据查询结果。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种图数据库的索引创建方法,该方法包括:创建联合索引;将边的属性、以及边关联的两个节点的属性,写入联合索引。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器、与处理器连接的存储器,其中,存储器存储有程序指令;处理器用于执行存储器存储的程序指令以实现上述方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,存储有程序指令,该程序指令被执行时能够实现上述方法。
通过上述方式,本申请图数据库的联合索引包括了边的属性以及与边关联的两个节点的属性,因此在查询数据时,无论查询条件涉及包括边的属性,还是涉及节点的属性,还是涉及边和节点的属性,均可以直接确定符合查询条件的目标联合索引,无需遍历过程而直接命中数据查询结果。因此适用范围广,查询效率高。并且,本申请提供的数据查询方法仍遵循原查询语法(gremlin语法),无需更改图查询语法,因此实现更加简单。
附图说明
图1是HBase的存储结构示意图;
图2是HBase中的存储单元的结构示意图;
图3是“在中国银行徘徊的男性”对应的图数据结构示意图;
图4是Person id 1的示意图;
图5是基于Person id 1得到的遍历信息的示意图;
图6是基于Person id 95647得到的遍历信息的示意图;
图7是本申请图数据库的索引创建方法一实施例的流程示意图;
图8是本申请图数据库的索引创建方法另一实施例的流程示意图;
图9是为当前边创建联合索引的一流程示意图;
图10是本申请图数据库的数据查询方法一实施例的流程示意图;
图11是本申请电子设备一实施例的结构示意图;
图12是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。
在介绍本申请提供的方法之前,先对图数据库进行简要介绍:
图数据库以存储系统(例如HBase、Cassandra等等)作为外部存储后端,即图数据库的图数据实际是存储在存储系统中的。
本申请后文以HBase为例。HBase是一个NOSQL数据库,是一个分布式的、面向列的开源数据库,在HBase中表是行的集合,行是列簇的集合,列簇是列的集合,列是键值对的集合。HBase中的存储结构示例如图1。HBase中的一个存储单元(cell)由row(行)和column(列) 确定。HBase中一行数据涉及一个节点的相关信息,该一行数据包含了该节点的所有属性、以及与该节点关联的边,每一个属性、每一条边都是一个独立的存储单元。HBase中的存储单元示例如图2。在向图数据库写入边时,需要查询出与边关联的节点,在关联的节点涉及的行数据中添加上边,实现对行数据的更新。
图数据库以索引系统(例如Elasticearch、Solr)作为外部索引后端。从而借助索引系统来加速对图数据库中图数据的查询。
图数据库支持的查询语法为gremlins(TinkerPop图形遍历语言)语法,用户能够通过gremlin实现对图数据库中图数据的增、删、改、查。
图数据库支持为其中的边/节点创建索引。为了便于区分,本申请后文将为边/节点创建的索引称为单索引。由此,从图数据库查询数据时,可以先通过单索引找到起始对象(起始节点或者起始边),再对起始对象进行遍历,得到数据查询结果。因此,由于单索引仅涉及一个节点或者一条边,只作用于起始对象,当查询条件(一个查询条件涉及一个节点或边)有多个时,在基于单索引确定符合其中一个查询条件查询到起始对象之后,需要对起始对象进行遍历,才能从起始对象中确定符合其他查询条件的目标对象。
例如,为图数据库中的节点“人”的属性(姓名id、性别)创建了单索引。要查询“在中国银行徘徊的男性”,图3是“在中国银行徘徊的男性”对应的图数据结构示意图。图3中节点分别是性别属性为男性的“人”、地点属性为“中国银行”的事件,边是“徘徊边”。如图3所示,要在图数据库中查询“在中国银行徘徊的男性”,查询条件包括查询条件1“人,性别:男性”、查询条件2“徘徊边”、查询条件3“事件,地点:中国银行”。
以上述三个查询条件的情况下,要查询到目标对象,需要的查询流程如下:
1)从单索引中确定符合查询条件1的候选索引,每个候选索引对应一个候选对象(具有id的人)。
2)以遍历的方式从候选对象中确定符合查询条件2和查询条件3 的目标对象。具体如下:
结合参阅图4,以Person id1为第一个候选对象,获取Person id1关联的边(徘徊edge、同行edge、昼伏夜出edge)。Person id1关联的边包括徘徊边(徘徊edge),因此Personid1符合查询条件2。
进一步地,结合参阅图5,确定徘徊edge关联的徘徊事件(徘徊id1)。
进一步地,确定徘徊id1的属性(时间属性:2020年1月,地点属性:招商银行)。地点属性不为中国银行,因此Person id1不符合查询条件3。
结合参阅图6,在Person id 1不符合查询条件2和3的情况下,继续对下一候选对象执行上述步骤,以找到符合查询条件2和查询条件3 的候选对象(Person id 95647),并将Person id 95647作为目标对象。
上述过程,由于人的单索引只作用于“人”,即单索引仅涉及一个查询条件,因此需要在确定满足查询条件1的候选对象之后,以遍历的方式进一步从候选对象中确定满足查询条件2和查询条件3的目标对象。
因此,基于单索引从图数据库查询数据,不可避免地出现遍历过程,而遍历过程导致查询效率低。所以基于单索引从图数据库查询数据,因查询效率低而导致适用范围受限。
为了提高查询效率,现有技术中可采用的方案为:罗列出业务上可能出现的所有查询条件组合,为每个查询条件组合创建对应的图索引,后续有查询需求时,就只需要根据查询条件组合确定图索引,基于图索引确定满足查询条件组合的目标对象。但是该方式下,存在如下问题:
1)业务越复杂,查询条件越多,图索引的创建难度就越大;
2)图数据库中的图数据结构越复杂,可能出现的查询条件组合越多,图索引占据的磁盘空间越大,写入难度越大;
3)无法直接使用原生的gremlin查询语法,需要重新开发索引查询接口;
4)容易超出Elasticearch单索引的字段数量限制(最多1024个字段),而且属性字段过程会影响索引性能。
为了在提高查询效率的同时,不影响其他性能,本申请提供的方法如下:
本申请提供的方法分为两个部分,一个部分是为图数据库创建联合索引;另一个部分是联合索引的应用,即基于联合索引从图数据库查询数据。
如下先介绍为图数据库创建联合索引:
图7是本申请图数据库的索引创建方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图7所示的流程顺序为限。如图7所示,本实施例可以包括:
S11:创建联合索引。
联合索引的结构包括边的属性、以及与边关联的两个节点的属性。另外,联合索引还包括联合索引的名称。边的节点创建的联合索引的结构可以表示为:
{
联合索引名,
联合索引的属性列表
[
边的属性,
节点的属性
]
}
S12:将边的属性,以及边关联的两个节点的属性,写入联合索引。
可以为每条边创建联合索引。由此,可以依序将每条边作为当前边,将当前边的属性、以及当前边关联的两个当前节点的属性,写入联合索引,得到当前边的联合索引。
或者,可以仅为预设类别的边创建联合索引。由此,可以依序将每条边作为当前边,判断当前边的类别是否为预设类别,若为预设类别则将当前边的属性、以及当前边关联的两个当前节点的属性,写入联合索引,得到当前边的联合索引。如下对预设类别的边进行说明:
从是否根据时间变化的角度,可以将图数据库中节点划分为静态节点和动态节点,将边划分为动态边和静态边。
静态节点不随时间变化,静态节点可以包括各种档案数据(人员档案、车辆档案、案件档案)等。动态节点随时间不断增加,动态节点可以包括各种时空事件数据(例如违章时间、出行轨迹)等。
静态边表示的关系是两个节点的一对多关系,或者两个节点的一对一关系,或者两个节点的多对多关系,静态边不随时间变化。静态边可以包括亲戚边、母子边、人车边(例如车主边)等。动态边表示的关系是两个节点的多对多的关系,且动态边随着时间不断增加(动态边关联的节点是动态节点)。动态边可以包括人事件边、车事件边(例如违章边)、同行边等。
以母子边和亲戚边为例,对静态边进行说明。针对母子边,1个人只有一个母亲,但是母亲可能有多个孩子。母子边表示的关系是一对多的关系,且母子边不会随着时间改变。因此母子边是静态边。针对亲戚边,虽然表示的关系是多对多关系,但是亲戚边不会随着时间改变。因此亲戚边是静态边。
以人事件边,对动态边进行说明。针对动态边,1个人可能与多个事件有关系,1个事件也可能有多个关系的人,因此人事件边表示的是人与事件的多对多关系,而且人、事件会随着时间增加,人事件边会随之增加。
考虑到边表示的关系是两个节点的多对多关系的情况下,查询的数据量大,因此可以将表示两个节点的多对多关系的静态边,作为预设类别的边。或者,考虑到边表示的关系是两个节点的多对多关系、且随时间不断增加的情况下,查询的数据量大且不可控,因此可以将动态边,作为预设类别的边。由此,预设类别的边,可以是表示两个节点的多对多关系的静态边,也可以是表示动态关系的边(动态边)。
另外,可以将边关联的两个节点的全部属性写入联合索引,也可以仅将边关联的两个节点的关键属性写入联合索引。节点的属性是否为关键属性,取决于用户的查询需求。例如,可以将查询频率足够高的属性作为关键属性。由此,可以在创建联合索引以满足查询需求的同时,减小联合索引所需占用的资源。
另外,考虑到边关联的两个节点可能具有同名属性,因此为了便于后续区分,可以为节点的属性添加前缀,前缀为对应的节点标识;将添加前缀后的节点的属性写入联合索引。本申请后文将边关联的两个节点中的一个称为头节点,另一个称为尾节点。
为边创建联合索引,可以是在将边写入图数据库的过程中进行的,也可以是在将边写入图数据库之后进行的。
通过本实施例的实施,本申请只需要按照原本为边创建单索引的流程,为边创建联合索引,因此创建方法简单。并且,相对于创建单索引,创建联合索引仅仅需要额外增加边关联的两个节点的属性,因此为边创建联合索引所需占用的资源少。其次,后续在基于联合索引从图数据库查询数据时,仍然遵循原本的查询语法(gremlin语法),因此不需要额外改变查询语法。另外,由于联合索引既包括边的属性也包括边关联的两个节点的属性,因此,后续基于联合索引从图数据库查询数据时,无需遍历过程,可以直接命中数据查询结果。
在其他实施例中,若S12中仅为预设类别的边创建联合索引,则可以对上述实施例进行如下扩展:
图8是本申请图数据库的索引创建方法另一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图8所示的流程顺序为限。本实施例中,S21是S12之前可以包括的步骤,S22~S24是对S12的进一步扩展。如图8所示,本实施例可以包括:
S21:为每条边设置联合索引标识。
预设类别的边的联合索引标识为真“true”,非预设类别的边的联合索引标识为假“false”。
结合如下表1和表2进行举例说明:
表1
Figure RE-GDA0003636814880000081
如表1所示,当前边关联的两个节点分别是人(person)和事件 (event),person具有属性num、name和sex,event具有属性num和tag。
表2
Figure RE-GDA0003636814880000091
如表2所示,当前边表示的关系名为hasEwent,当前边具有属性relationAddress、relation Time。当前边关联的两个节点中,person是头节点、event是尾节点。当前边的联合索引标识(Union)为“true”。
S22:分别将每条边作为当前边,确定当前边的联合索引标识是否为真。
若为真,则执行S23;否则不执行S23。
S23:将当前边的属性、以及当前边关联的两个当前节点的属性,写入联合索引,得到当前边的联合索引。
如下结合图9,以一个具体实例的方式,对为当前边创建联合索引进行详细说明:
1)判断当前边的联合索引标识是否为真。
2)若为真,则为当前边的属性、当前边关联的两个当前节点的属性写入联合索引,得到当前边的联合索引。联合索引存在Elasticearch(ES) 中。并将当前边写入HBase。
3)若为假,则执行原本的写边流程,即将当前边写入图数据库/HBase。
为表2所示的边创建得到的联合索引如下:
Figure RE-GDA0003636814880000092
Figure RE-GDA0003636814880000101
如下介绍联合索引的应用:
图10是本申请图数据库的数据查询方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图10所示的流程顺序为限。如图10所示,本实施例可以包括:
S31:获取查询条件。
查询条件可以是一个,也可以是多个。每个查询条件涉及一个节点或者一条边,不同的查询条件涉及不同的节点或边。
例如前面提及的,要查询的目标对象为“在中国银行徘徊的男性”,查询条件包括查询条件1“人,性别:男性”、查询条件2“徘徊边”、查询条件3“事件,地点:中国银行”。
又如,要查询的目标对象为“22岁的女性”,查询条件包括“人,年龄:22岁,性别:女性”。
S32:从图数据库的联合索引中查找目标联合索引。
目标联合索引的属性符合查询条件,联合索引的属性包括边的属性和边关联的两个节点的属性。
可以理解的是,由于联合索引包括了边的属性以及与边关联的两个节点的属性,因此,当查询条件涉及边的属性,或者涉及节点的属性,或者涉及边和节点的属性时,均可以直接从图数据库的联合索引中查找目标联合索引。
仍然以“在中国银行徘徊的男性”进行说明,可以直接找到符合查询条件1、查询条件2和查询条件3的目标联合索引。
S33:将具有目标联合索引的目标边关联的两个目标节点,作为数据查询结果。
通过本实施例的实施,本申请图数据库的联合索引包括了边的属性以及与边关联的两个节点的属性,因此在查询数据时,无论查询条件涉及包括边的属性,还是涉及节点的属性,还是涉及边和节点的属性,均可以直接确定符合查询条件的目标联合索引,无需遍历过程而直接命中数据查询结果。因此适用范围广,查询效率高。并且,本申请提供的数据查询方法仍遵循原查询语法(gremlin语法),无需更改图查询语法,因此实现更加简单。
如下分别对基于原有的单索引和联合索引从图数据库查询数据进行对比说明:
查询任务为在图数据库查询特定属性男子。对应的查询条件包括查询条件a“人,性别:男性”,查询条件b“特定属性边”,查询条件c“特定属性案件”。
基于人的单索引查询的查询逻辑为,基于单索引命中符合查询条件 a的人,对符合查询条件a的人遍历,得到符合查询条件b和查询条件c 的人,作为数据查询结果。gremlin查询语句示例如下:
g.V().has('person','sex','男性').as('person1')
.outE('hasEvent').as('hasEvent1')
.inV().has('event','tag','特定属性').as('event1')
.select('person1',hasEvent','event'))
基于联合索引的查询逻辑为:基于联合索引直接命中符合查询条件 a、查询条件b和查询条件c的人,作为数据查询结果。gremlin查询语句示例如下:
g.E().has('hasEvent','sex','男性').has('hasEvent','tag','特定属性 ').as('hasEvent1')
.outV('event').as('event1')
.select('hasEvent1').inV('person').as('person1')
.select('hasEvent1','event1','person1'))
通过上述对比可知,本申请基于联合索引实现数据查询的方式,查询效率更高。
图11是本申请电子设备一实施例的结构示意图。如图11所示,该电子设备包括处理器21、与处理器21耦接的存储器22。
其中,存储器22存储有用于实现上述任一实施例的方法的程序指令;处理器21用于执行存储器22存储的程序指令以实现上述方法实施例的步骤。其中,处理器21还可以称为CPU(Central Processing Unit,中央处理单元)。处理器21可能是一种集成电路芯片,具有信号的处理能力。处理器21还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
图12是本申请计算机可读存储介质一实施例的结构示意图。如图 12所示,本申请实施例的计算机可读存储介质30存储有程序指令31,该程序指令31被执行时实现本申请上述实施例提供的方法。其中,该程序指令31可以形成程序文件以软件产品的形式存储在上述计算机可读存储介质30中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的计算机可读存储介质30包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (13)

1.一种图数据库的数据查询方法,其特征在于,包括:
获取查询条件;
从所述图数据库的联合索引中查找目标联合索引,所述目标联合索引的属性符合所述查询条件,所述联合索引的属性包括边的属性和所述边关联的两个节点的属性;
将具有所述目标联合索引的目标边关联的两个目标节点,作为数据查询结果。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括如下为边创建所述联合索引的步骤:
创建所述联合索引;
将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引。
3.根据权利要求2所述的方法,其特征在于,在所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引之前,包括:
为每条所述边设置联合索引标识,预设类别的边的所述联合索引标识为真;
所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:
分别将每条所述边作为当前边,确定所述当前边的联合索引标识是否为真;
若为真,则将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。
4.根据权利要求3所述的方法,其特征在于,所述预设类别的边表示动态关系。
5.根据权利要求2所述的方法,其特征在于,所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:
分别将每条所述边作为当前边,依序将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。
6.根据权利要求5所述的方法,其特征在于,所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:
为所述节点的属性添加前缀,所述前缀为对应的节点标识;
将添加前缀后的所述节点的属性写入所述联合索引。
7.一种图数据库的索引创建方法,其特征在于,包括:
创建联合索引;
将边的属性、以及边关联的两个节点的属性,写入所述联合索引。
8.根据权利要求7所述的方法,其特征在于,在所述将边的属性、以及边关联的两个节点的属性,写入所述联合索引之前,包括:
为每条所述边设置联合索引标识,预设类别的边的所述联合索引标识为真;
所述将边的属性、以及边关联的两个节点的属性,写入所述联合索引,包括:
分别将每条所述边作为当前边,确定所述当前边的联合索引标识是否为真;
若为真,则将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。
9.根据权利要求8所述的方法,其特征在于,所述预设类别的边表示动态关系。
10.根据权利要求7所述的方法,其特征在于,所述将边的属性、以及边关联的两个节点的属性,写入所述联合索引,包括:
分别将每条边作为当前边,依序将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。
11.根据权利要求7所述的方法,其特征在于,所述将边的属性、以及边关联的两个节点的属性,写入所述联合索引,包括:
为所述节点的属性添加前缀,所述前缀为对应的节点标识;
将添加前缀后的所述节点的属性写入所述联合索引。
12.一种电子设备,其特征在于,包括处理器、与所述处理器连接的存储器,其中,
所述存储器存储有程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以实现权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储程序指令,所述程序指令被执行时实现如权利要求1-11中任一项所述的方法。
CN202210068412.3A 2022-01-20 2022-01-20 图数据库的查询方法、索引创建方法及相关设备 Pending CN114741570A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210068412.3A CN114741570A (zh) 2022-01-20 2022-01-20 图数据库的查询方法、索引创建方法及相关设备
PCT/CN2023/072091 WO2023138505A1 (en) 2022-01-20 2023-01-13 Methods, systems, and devices for data query

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210068412.3A CN114741570A (zh) 2022-01-20 2022-01-20 图数据库的查询方法、索引创建方法及相关设备

Publications (1)

Publication Number Publication Date
CN114741570A true CN114741570A (zh) 2022-07-12

Family

ID=82274775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210068412.3A Pending CN114741570A (zh) 2022-01-20 2022-01-20 图数据库的查询方法、索引创建方法及相关设备

Country Status (2)

Country Link
CN (1) CN114741570A (zh)
WO (1) WO2023138505A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138505A1 (en) * 2022-01-20 2023-07-27 Zhejiang Dahua Technology Co., Ltd. Methods, systems, and devices for data query

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527497B2 (en) * 2010-12-30 2013-09-03 Facebook, Inc. Composite term index for graph data
CN102662974B (zh) * 2012-03-12 2014-02-26 浙江大学 一种基于邻接节点树的网络图索引方法
US10445370B2 (en) * 2017-06-09 2019-10-15 Microsoft Technology Licensing, Llc Compound indexes for graph databases
US11080332B1 (en) * 2017-11-21 2021-08-03 Amazon Technologies, Inc. Flexible indexing for graph databases
CN114741570A (zh) * 2022-01-20 2022-07-12 浙江大华技术股份有限公司 图数据库的查询方法、索引创建方法及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138505A1 (en) * 2022-01-20 2023-07-27 Zhejiang Dahua Technology Co., Ltd. Methods, systems, and devices for data query

Also Published As

Publication number Publication date
WO2023138505A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
US11132346B2 (en) Information processing method and apparatus
US11334544B2 (en) Method, apparatus, device and medium for storing and querying data
CN107784044B (zh) 表数据查询方法及装置
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
US9946752B2 (en) Low-latency query processor
CN112800287B (zh) 基于图数据库的全文索引方法和系统
CN104252536A (zh) 一种基于hbase的上网日志数据查询方法及装置
CN102455984B (zh) 从二级存储装置读取行之前从存储器读取行的方法和装置
Mahmood et al. FAST: frequency-aware indexing for spatio-textual data streams
CN109669980B (zh) 数据跨库访问方法及装置
CN107103011B (zh) 终端数据搜索的实现方法和装置
WO2022257390A1 (zh) 数据处理方法、服务器及存储介质
CN112445889A (zh) 存储数据、检索数据的方法及相关设备
CN110928882B (zh) 一种基于改进红黑树的内存数据库索引方法及系统
WO2021189195A1 (zh) 数据查询方法、装置、服务器及存储介质
CN108241709B (zh) 一种数据集成方法、装置和系统
WO2020215438A1 (zh) 电子地图空间关键字查询分布式索引系统和方法
CN114741570A (zh) 图数据库的查询方法、索引创建方法及相关设备
CN110515979B (zh) 数据查询方法、装置、设备和存储介质
CN108052601A (zh) 数据库建立方法、装置及终端
Li et al. Answering why-not questions on top-k augmented spatial keyword queries
Yang et al. LAZY R-tree: The R-tree with lazy splitting algorithm
CN113779068B (zh) 数据查询方法、装置、设备及存储介质
CN104899755A (zh) 一种多维度复杂条件广告索引方法
Mahmood et al. FAST: frequency-aware spatio-textual indexing for in-memory continuous filter query processing

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