CN111984828A - 一种邻居节点检索方法和装置 - Google Patents
一种邻居节点检索方法和装置 Download PDFInfo
- Publication number
- CN111984828A CN111984828A CN202010621127.0A CN202010621127A CN111984828A CN 111984828 A CN111984828 A CN 111984828A CN 202010621127 A CN202010621127 A CN 202010621127A CN 111984828 A CN111984828 A CN 111984828A
- Authority
- CN
- China
- Prior art keywords
- node
- index
- identifier
- content
- neighbor
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000000758 substrate Substances 0.000 claims 2
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000004880 explosion Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种邻居节点检索方法,包括:获取第一检索条件,所述第一检索条件包括:待检索节点的标识;遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
Description
技术领域
本发明涉及数据处理技术,尤其涉及一种邻居节点检索方法和装置。
背景技术
在图数据库领域,大多采用列表式结构来存储图数据中的节点以及边的信息。如图1所示的图数据采用列表式结构的存储结果如图2所示。
基于图2所示的结构进行节点的邻居查询时,需要将某个节点的所有边的信息先读取到内存中,然后再进行分析,确认该节点的邻居有哪些。
如果,图数据中存在超级节点,即该节点的边的数量巨大(即邻居数量巨大),例如,在微博中某个用户的粉丝数量过亿,那么如果要查找该超级节点的邻居,就需要从图2所示的结构中将该节点的过亿的邻居相关信息、即边的信息一次性读取到内存中,而且,边本身是存在方向的,那么在某些情况下两个节点之间就存在两条方向相反的边,那么边的信息量就会翻倍。如此,系统内存就会爆表,邻居节点的查询性能非常低。
发明内容
本发明提供一种,以至少解决现有技术中存在的以上技术问题。
本发明一方面提供一种邻居节点检索方法,包括:
获取第一检索条件,所述第一检索条件包括:待检索节点的标识;
遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
其中,每条索引的内容还包括所述邻居节点的至少一个属性值。
其中,所述方法还包括:
获取所述第一检索条件和第二检索条件;
遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点做为所述待检索节点的邻居节点。
其中,所述方法还包括:根据图数据生成所述邻接索引表,包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
其中,生成该条边对应的两条索引之后,还包括:
判断所述邻接索引表中是否存在与所述生成的索引的键值相同的索引,若不存在,则将所述生成的索引添加到所述邻接索引表中,若存在,则删除生成的所述索引。
本发明另一方面提供一种邻居节点检索装置,包括:
条件获取模块,用于获取第一检索条件,所述第一检索条件包括:待检索节点的标识;
所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
检索模块,用于遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
所述检索模块,还用于对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点做为所述待检索节点的邻居节点。
其中,每条索引的内容还包括邻居节点的至少一个属性值。
其中,
所述条件获取模块,还用于获取所述第一检索条件和第二检索条件;
所述检索模块,还用于遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
其中,还包括
图数据处理模块,用于根据图数据生成所述邻接索引表,包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
其中,
所述图数据处理模块,还用于生成该条边对应的两条索引之后,判断所述邻接索引表是否存在于所述生成的索引的键值相同的索引,若不存在,则将所述生成的索引添加到所述邻接索引表中,若存在,则删除生成的所述索引。
基于上述的检索方法,可以将遍历到的索引读取到内存中,进行匹配等处理,处理完毕后,即可将该条索引从内存中清除,再读取下一条索引,作同样的处理,如此,即使待检索的节点是一个超级节点,也不会出现内存爆表的情况,提高了检索的效率。
附图说明
图1示出了一实施例所示的图数据;
图2示出了图1所示的图数据采用列表式结构的存储结果示意图;
图3示出了本发明一实施例提供的邻居节点检索方法流程示意图;
图4示出了一实施例中基于图1所示的图数据构建的邻接索引表示意图;
图5示出了另一实施例中基于图1所示的图数据构建的邻接索引表示意图;
图6示出了本发明另一实施例提供的邻居节点检索方法流程示意图;
图7示出了本发明一实施例提供的邻居节点检索装置示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高基于图数据的邻居节点检索效率,本发明一实施例提供了一种邻居节点的检索方法,如图3所示,包括:
步骤301,获取第一检索条件,所述第一检索条件包括:待检索节点的标识。
步骤302,遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
在该实施中,邻居节点的检索是基于一个邻接索引表,该邻接索引表是基于图数据构建的。该邻接索引表的结构如下:邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识。例如,基于如图1所示的图数据构建的邻接索引表如图4所示,其中,以第1条索引和第2条索引为例进行说明,键值A-B和键值B-A均表示同一条边,但是表示了不同的方向,且键值A-B和键值B-A均表示了A和B为邻居,第1条索引中目标节点为A,其邻居节点为B;第2条索引中,目标节点为B,其邻居节点为A。
那么,基于邻接索引表进行邻居的检索过程为:
先获取检索条件(这里称为第一检索条件),基于图4所示的邻接索引表的结构,支持的检索条件可为节点的标识。那么第一检索条件中包括:待检索节点的标识。
在检索时:
遍历邻接索引表;
对于遍历到的索引,确定待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
例如,基于图4所示的邻接索引表,若第一检索条件包含的待检索节点的标识为节点A的标识,那么遍历邻接索引表,当遍历到第1条索引时,将第一检索条件包含节点A的标识与第1条索引的内容中目标节点的标识(节点A的标识)进行匹配,两者一致(即使用第一检索条件命中),则将第1条索引的键值中包含的节点B作为待检索节点、即节点A的邻居。遍历下一条索引、即第2条索引,第一检索条件包含节点A的标识与第2条索引的内容中目标节点的标识(节点B的标识)不匹配,使用第一检索条件未命中;继续遍历,依次类推,直到将索引表遍历完毕,即可检索到节点A的所有邻居,图4中,检索到的节点A的邻居有节点B、节点C和节点D。
在上面的过程中,可以将遍历到的索引读取到内存中,进行上述步骤302的处理,处理完毕后,即可将该条索引从内存中清除,再读取下一条索引,作同样的处理,如此,即使待检索的节点是一个超级节点,也不会出现内存爆表的情况,提高了检索的效率。
在本发明提供的另一个实施例中,邻接索引表的每条索引的内容还包括所述邻居节点的至少一个属性值。例如,若节点表示人,则属性值可以是性别、年龄、受教育程度等。那么,以节点表示人为例,在图4所示的邻接索引表中添加入属性值后,如图5所示。
基于该实施例的邻接索引表结构,如图6所示,本发明实施例还提供了有一种一种邻居节点的检索方法,包括:
步骤601,获取第一检索条件和第二检索条件;
步骤602,遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
在该实施中,邻接索引表的结构如下:邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识和邻居节点的至少一个属性值。例如,基于如图1所示的图数据构建的邻接索引表如图5所示,其中,以第1条索引和第2条索引为例进行说明,键值A-B和键值B-A均表示同一条边,但是表示了不同的方向,且键值A-B和键值B-A均表示了A和B为邻居,第1条索引中目标节点为A,其邻居节点为B,该索引的内容包括节点A的标识和节点B的2个属性值(性别为男性、身高为170cm);第2条索引中,目标节点为B,其邻居节点为A,该索引的内容包括节点B的标识和节点A的2个属性值(性别为女性、身高为168cm)。
那么,基于邻接索引表进行邻居的检索过程为:
先获取检索条件,基于图4所示的邻接索引表的结构,支持的检索条件可为节点的标识以及节点的属性值。那么这里可以获取两种检索条件:第一检索条件中包括:待检索节点的标识;第二检索条件包含待检索节点的邻居节点的至少一个属性值。需要说明的是,检索条件必须包含第一检索条件,可不包含第二检索条件。当存在两种检索条件时,如果第一检索条件命中,则可继续使用第二检索条件进行过滤;如果第一检索条件未命中,则无需再使用第二检索条件进行过滤。
在检索时:
遍历邻接索引表;
对于遍历到的索引,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
例如,基于图4所示的邻接索引表,若第一检索条件包含的待检索节点的标识为节点A的标识,第二检索条件包含的属性值为:性别:女,即要检索节点A的女性邻居节点。遍历邻接索引表,当遍历到第1条索引时,将第一检索条件包含节点A的标识与第1条索引的内容中目标节点的标识(节点A的标识)进行匹配,两者一致(表示节点B是A的邻居节点),继续将属性值“女性”与第1条索引的内容中的属性值“男性”进行比较,两者不匹配,即根据第二检索条件将节点B过滤掉了。遍历下一条索引、即第2条索引,第一检索条件包含节点A的标识与第2条索引的内容中目标节点的标识(节点B的标识)不匹配,则不需要再继续用第二检索条件进行过滤;继续遍历,依次类推,直到将索引表遍历完毕,即可检索到节点A的所有女性邻居,图4中,检索到的节点A的女性邻居有节点C。
在上面的过程中,可以将遍历到的索引读取到内存中,进行上述步骤602的处理,处理完毕后,即可将该条索引从内存中清除,再读取下一条索引,作同样的处理,如此,即使待检索的节点是一个超级节点,也不会出现内存爆表的情况,提高了检索的效率。
上述邻接索引表的构建是基于图数据的,在将图数据转化为列表式结构进行存储的过程中,可以生成邻接索引表,具体过程包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
如根据图1所示的图数据可生成如图4(索引的内容仅包含目标节点的标识)或图5(索引的内容包括目标节点的标识和邻居节点的属性值)所示的邻接索引表时:
以边a(即A→B)为例,该条边的一端节点A为起始节点,另一端节点B为终止节点。
针对边a生成两条索引,其中:
第一索引的键值中的目标节点的标识为起始节点的标识、即节点A的标识,邻居节点的标识为终止节点的标识、即节点B的标识,那么键值可以表示为A-B;第一索引的内容包括节点A的标识,如图4中第1条索引所示,或者,第一索引的内容包括节点A的标识,以及邻居节点的属性值为终止节点的属性值、即节点B的属性值,如图5中第1条索引所示;
第二索引的键值中的目标节点的标识为终止节点的标识、即节点B的标识,邻居节点的标识为起始节点的标识、即节点A的标识,那么键值可以表示为B-A;第二索引的内容包括节点B的标识,如图4中第2条索引所示,或者,第二索引的内容包括节点B的标识,以及邻居节点的属性值为起始节点的属性值、即节点A的属性值,如图5中第2条索引所示。
如果存在一条边B→A,该条边的一端节点B为起始节点,另一端节点A为终止节点,那么生成的两条索引中:
第一索引键值可为B-A,内容包括节点B的标识,如图4中第2条索引所示,或者,内容包括节点B的标识以及节点A的属性值,如图5中第2条索引所示;
第二索引键值可为A-B,内容包括节点A的标识,如图4中第1条索引所示,或者,内容包括节点A的标识以及节点B的属性值,如图5中第1条索引所示。
可见,针对边A→B和边B→A分别生成的两条索引是相同的。
基于此,那么当生成该条边对应的两条索引之后,还要进行去重处理:判断邻接索引表中是否存在与生成的索引的键值相同的索引,若不存在,则将生成的索引添加到邻接索引表中,若存在,则删除生成的索引。如此可以保证邻接索引表中不存在重复的索引,提高了邻居了检索效率。
需要说明的是,在根据图数据建立邻接索引表时,可以采用深度优先搜索法或者广度(宽度)优先搜索法对图数据进行遍历。
深度优先搜索法的原理是:从图的某个节点v0出发,访问v0,然后选择一个与v0相邻且没被访问过的节点vi访问,再从vi出发选择一个与vi相邻且未被访问的节点vj进行访问,依次类推。如果当前被访问过的节点的所有邻接节点都已被访问,则退回到已被访问的节点序列中最后一个拥有未被访问的相邻节点的节点w,从w出发按同样的方法向前遍历,直到图中所有节点都被访问。结合图1所示的图数据,即可从节点A出发,先访问B,再访问C,因为C的邻接点均被访问过,则返回节点A,因为C已经被访问过,则返回A,继续访问D,D不存在未被访问过的邻接点,则遍历结束。
广度(宽度)优先搜索法的原理是:首先访问初始节点vi,并将其标记为已访问过,接着访问vi的所有未被访问过的邻接点vi1,vi2,…,vi t,并均标记已访问过,然后再按照vi1,vi2,…,vi t的次序,访问每一个顶点的所有未被访问过的邻接点,并均标记为已访问过,依次类推,直到图中所有和初始点vi有路径相通的顶点都被访问过为止。结合图1所示的图数据,可从节点A出发,依次访问B,C,D后,遍历结束。
不管基于何种算法对图数据进行遍历,对于遍历到的任何一个节点,可确定出与其关联的边,针对于其关联的每条边生成两条索引,然后进行去重处理,直到最后一个节点,当确定图中不存在未遍历(即未访问)的节点时,对图的遍历结束,那么,针对图数据的邻接索引表的构建完成。
采用本发明上述实施例基于邻接索引表的邻居检索方法,可以快速的检索出邻居节点的数量以及邻居标识。(若,仅查询邻居节点的数量,那么命中第一检索条件的索引的数量就是邻居节点的数量)如表1所示,基于一个拥有3600万条边的节点,采用本发明邻接索引表检索该节点邻居的响应时间和基于列表式存储结构检索邻居的响应时间的比较,可见采用本发明的检索方法对于邻居的检索效率有质的提升。
表1
采用邻接索引表的方式存储节点的邻接关系,可扩展性强,在此基础上若采用可扩展的搜索引擎,例如ElasticSearch等,可支持邻居规模更大的超级节点的邻居检索。
为了实现上述的邻居方法,如图7所示,本发明实施例还提供了一种邻居节点检索装置,包括:
条件获取模块10,用于获取第一检索条件,所述第一检索条件包括:待检索节点的标识;
所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
检索模块20,用于遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
所述检索模块20,还用于对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点做为所述待检索节点的邻居节点。
其中,每条索引的内容还包括邻居节点的至少一个属性值。
所述条件获取模块10,还用于获取所述第一检索条件和第二检索条件;
所述检索模块20,还用于遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
该装置还包括:
图数据处理模30,用于根据图数据生成所述邻接索引表,包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
所述图数据处理模块30,还用于生成该条边对应的两条索引之后,判断所述邻接索引表是否存在于所述生成的索引的键值相同的索引,若不存在,则将所述生成的索引添加到所述邻接索引表中,若存在,则删除生成的所述索引。
示例性地,本发明还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的邻居检索方法。
示例性地,本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的邻居检索方法。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种邻居节点检索方法,包括:
获取第一检索条件,所述第一检索条件包括:待检索节点的标识;
遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
2.根据权利要求1所述的方法,每条索引的内容还包括所述邻居节点的至少一个属性值。
3.根据权利要求2所述的方法,还包括:
获取所述第一检索条件和第二检索条件;
遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
4.根据权利要求1或2所述的方法,还包括:根据图数据生成所述邻接索引表,包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
5.根据权利要求4所述的方法,生成该条边对应的两条索引之后,还包括:
判断所述邻接索引表中是否存在与所述生成的索引的键值相同的索引,若不存在,则将所述生成的索引添加到所述邻接索引表中,若存在,则删除生成的所述索引。
6.一种邻居节点检索装置,包括:
条件获取模块,用于获取第一检索条件,所述第一检索条件包括:待检索节点的标识;
所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
检索模块,用于遍历邻接索引表,所述邻接索引表包含多条索引,每条索引包括键值和内容,所述键值包括目标节点的标识和邻居节点的标识,所述内容包括所述目标节点的标识;
所述检索模块,还用于对于遍历到的索引,确定所述待检索节点的标识与该索引的内容中的所述目标节点的标识匹配时,将该索引的键值中的邻居节点做为所述待检索节点的邻居节点。
7.根据权利要求6所述的装置,每条索引的内容还包括邻居节点的至少一个属性值。
8.根据权利要求7所述的装置,
所述条件获取模块,还用于获取所述第一检索条件和第二检索条件;
所述检索模块,还用于遍历所述邻接索引表,对于遍历到的索引,确定所述第一检索条件包括的待检索节点的标识与该索引的内容中的所述目标节点的标识匹配,且该索引内容中的所述属性值与所述第二检索条件匹配时,将该索引的键值中的邻居节点作为所述待检索节点的邻居节点。
9.根据权利要求6或7所述的装置,还包括
图数据处理模块,用于根据图数据生成所述邻接索引表,包括:
针对所述图数据中的任意一条边,生成该条边对应的两条索引,该条边的一端为起始节点,另一端为终止节点;
所述两条索引中的第一索引的键值中的所述目标节点的标识为所述起始节点的标识,所述邻居节点的标识为所述终止节点的标识,第一索引的内容中邻居节点的属性值为所述终止节点的属性值;
所述两条索引中的第二索引的键值中的所述目标节点的标识为所述终止节点的标识,所述邻居节点的标识为所述起始节点的标识,第二索引的内容中邻居节点的属性值为所述起始节点的属性值。
10.根据权利要求9所述的装置,
所述图数据处理模块,还用于生成该条边对应的两条索引之后,判断所述邻接索引表是否存在于所述生成的索引的键值相同的索引,若不存在,则将所述生成的索引添加到所述邻接索引表中,若存在,则删除生成的所述索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010621127.0A CN111984828A (zh) | 2020-06-30 | 2020-06-30 | 一种邻居节点检索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010621127.0A CN111984828A (zh) | 2020-06-30 | 2020-06-30 | 一种邻居节点检索方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984828A true CN111984828A (zh) | 2020-11-24 |
Family
ID=73437720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010621127.0A Pending CN111984828A (zh) | 2020-06-30 | 2020-06-30 | 一种邻居节点检索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984828A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308630A (zh) * | 2020-11-16 | 2021-02-02 | 上海品见智能科技有限公司 | 一种基于大数据技术应用的资金交易圈识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111617A (zh) * | 2014-12-19 | 2017-08-29 | 微软技术许可有限责任公司 | 数据库中的图处理 |
CN108027818A (zh) * | 2015-09-18 | 2018-05-11 | 微软技术许可有限责任公司 | 基于图的查询 |
CN110019975A (zh) * | 2017-10-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 随机游走、基于集群的随机游走方法、装置以及设备 |
CN110609924A (zh) * | 2019-08-15 | 2019-12-24 | 深圳壹账通智能科技有限公司 | 基于图数据的全量关系计算方法、装置、设备及存储介质 |
CN111309979A (zh) * | 2020-02-27 | 2020-06-19 | 桂林电子科技大学 | 一种基于邻居向量的RDF Top-k查询方法 |
-
2020
- 2020-06-30 CN CN202010621127.0A patent/CN111984828A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111617A (zh) * | 2014-12-19 | 2017-08-29 | 微软技术许可有限责任公司 | 数据库中的图处理 |
CN108027818A (zh) * | 2015-09-18 | 2018-05-11 | 微软技术许可有限责任公司 | 基于图的查询 |
CN110019975A (zh) * | 2017-10-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 随机游走、基于集群的随机游走方法、装置以及设备 |
CN110609924A (zh) * | 2019-08-15 | 2019-12-24 | 深圳壹账通智能科技有限公司 | 基于图数据的全量关系计算方法、装置、设备及存储介质 |
CN111309979A (zh) * | 2020-02-27 | 2020-06-19 | 桂林电子科技大学 | 一种基于邻居向量的RDF Top-k查询方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308630A (zh) * | 2020-11-16 | 2021-02-02 | 上海品见智能科技有限公司 | 一种基于大数据技术应用的资金交易圈识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713229B2 (en) | Index generating device and method, and search device and search method | |
CN112287182A (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN112115227B (zh) | 数据的查询方法、装置、电子设备及存储介质 | |
US10546009B2 (en) | System for mapping a set of related strings on an ontology with a global submodular function | |
CN112732883A (zh) | 基于知识图谱的模糊匹配方法、装置和计算机设备 | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
JP2017526021A (ja) | データ検索におけるエラー修正装置及びその方法 | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
CN111859004A (zh) | 检索图像的获取方法、装置、设备及可读存储介质 | |
CN111666468A (zh) | 一种基于团簇属性在社交网络中搜索个性化影响力社区的方法 | |
KR101116663B1 (ko) | 고차원 데이터의 유사도 검색을 위한 데이터 분할방법 | |
CN115905309A (zh) | 相似实体搜索方法、装置、计算机设备及可读存储介质 | |
CN111984828A (zh) | 一种邻居节点检索方法和装置 | |
JP2010277329A (ja) | 近傍探索装置 | |
CN113821630A (zh) | 一种数据聚类的方法和装置 | |
CN113468383B (zh) | 家族关系图谱的搜索方法、装置、电子设备及存储介质 | |
KR100859710B1 (ko) | 데이터에 대한 검색을 수행하기 위한 자료구조를 이용하여 데이터를 검색, 저장, 삭제하는 방법 | |
CN113779025B (zh) | 一种区块链中分类数据检索效率的优化方法、系统及应用 | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
CN113127861A (zh) | 一种规则命中检测方法、装置、电子设备及可读存储介质 | |
CN109918488A (zh) | 用于相似文档检索的方法与设备 | |
CN116910186B (zh) | 一种文本索引模型构建方法、索引方法、系统和终端 | |
CN116383677B (zh) | 一种知识图谱实体相似度计算方法及系统 | |
US11620269B2 (en) | Method, electronic device, and computer program product for data indexing | |
CN110147429B (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 |