CN103646079A - 一种用于图数据库搜索的分布式索引及其并行生成方法 - Google Patents

一种用于图数据库搜索的分布式索引及其并行生成方法 Download PDF

Info

Publication number
CN103646079A
CN103646079A CN201310681577.9A CN201310681577A CN103646079A CN 103646079 A CN103646079 A CN 103646079A CN 201310681577 A CN201310681577 A CN 201310681577A CN 103646079 A CN103646079 A CN 103646079A
Authority
CN
China
Prior art keywords
index
summit
list
neighbours
distributed
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
CN201310681577.9A
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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201310681577.9A priority Critical patent/CN103646079A/zh
Publication of CN103646079A publication Critical patent/CN103646079A/zh
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/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于图数据库搜索的分布式索引及其并行生成方法,用于图数据库搜索的分布式索引,包括:一种δ-邻居顶点查询表,一种匹配顶点裁剪索引,一种分布式匹配顶点裁剪索引;本发明的分布式索引的生成方法是基于MapReduce的并行算法;本发明既可帮助减小搜索空间、提高搜索效率,又能克服图数据库上构建索引的巨大的时间、空间开销,并且还保证每次搜索所需的索引访问次数最少,避免了因索引访问开销而导致搜索时间增加的问题。

Description

一种用于图数据库搜索的分布式索引及其并行生成方法
技术领域
本发明属于图数据库的关键词搜索技术领域,涉及一种用于图数据库搜索的分布式索引及其并行生成方法,尤其涉及一种为实现在具有百万级以上顶点的大规模图上快速获取搜索结果而引入的分布式索引技术。
背景技术
近年来,在社交网络、生物信息、化学信息、软件工程、语义网、交通网络等领域出现了大量的图结构数据(graph-structured data)。例如,在社交网络中,用户被表示为顶点,顶点内包含了用户的姓名、年龄、喜好等数据,而用户间的关系则被表示为顶点之间的边,从而形成一个巨大的图。在这个背景下,基于图数据库(graph database)的应用开始受到蓬勃发展并展现出可观的经济与社会价值。例如,社交网络中的社群发现与推荐,蛋白质交互网络中的蛋白质结构匹配,基于频繁子图挖掘的软件测试中的debug技术,智能交通中的路线计算等。
关键词搜索是一种在图数据库研究领域受到广泛关注的重要应用技术。不同于传统的应用于非结构数据的关键词搜索技术,如Google等搜索引擎的方法,这项技术并不是只查找包含了所有给定关键词的单个文档或对象,而是在数据库中去查找包含了所有关键词的结构体,这些结构体由一些相互间存在结构联系的对象所组成,作为一个整体可满足用户的信息需求。它既不需要用户掌握结构化的查询语言和复杂的数据库模式,又能充分发掘数据库内的数据本身所具有的结构化信息的潜在价值,并在传统关键词搜索技术失效时仍然能够为用户发现有用的信息。因此,它具有十分重要的科研与产业价值。
目前图数据库上的关键词搜索的相关优化技术大致分为两类,即算法优化和索引技术。下面对这两种技术进行简要介绍和分析。
InfoUnit、Backward Search、Bidirectional Search是几种主要的启发式搜索算法,提出了从匹配顶点出发按照最短路径优先原则进行top-k搜索的方式,以及一些改善顶点访问优先级的策略;Ding等提出了一种基于动态规划的搜索算法;Golenberg等则提出了一种近似算法框架,可在多项式时间的延迟内返回下一个(近似)最优答案。总的来说,尽管采用了启发式或近似手段以提高效率,但单纯算法上的改进并不能将问题的复杂度降低到可以被实际应用接受的程度。
He等提出的BLINKS索引技术率先尝试了基于索引的优化方法,将图中各个顶点之间的最短距离预先计算出来并物化到索引中;Li等和Zhong等利用了图索引(Graph Index)将搜索范围缩小到若干个特定的子图中;Markowetz等提出了一种可达性索引(ReachabilityIndex)用于避免那些不会对找到top-k答案有帮助的搜索步骤。这些索引技术被证明是非常有效的,但仍然有一些难以克服的缺陷,譬如需要占用大量内存、优化过程本身可能非常耗时等。
发明内容
针对上述存在的技术问题,本发明的目的是提供一种用于图数据库搜索的分布式索引及其并行生成方法,既可帮助减小搜索空间、提高搜索效率,又能克服图数据库上构建索引的巨大的时间、空间开销,并且还保证每次搜索所需的索引访问次数最少,避免了因索引访问开销而导致搜索时间增加的问题。
为达到上述目的,本发明采用如下的技术方案:一种用于图数据库搜索的分布式索引,其特征在于,包括以下内容:
所述的分布式索引包括一种δ-邻居顶点查询表,给定图中一个顶点,可以快速查找与其距离不超过参数δ的所有邻居顶点;
所述的分布式索引包括一种匹配顶点裁剪索引,给定一个关键词查询,可以通过利用各关键词的索引项的信息进行运算实现对匹配顶点的裁剪;
所述的分布式索引包括一种分布式匹配顶点裁剪索引,将每一个索引项分割成若干个独立的部分分布到多个主机上,每个主机所保存的本地索引只记录在一个特定的不相交的潜在根集合内的索引信息,这样使得每个主机都可以独立的进行搜索。
作为优选,所述的δ-邻居顶点查询表包括两列,第一列是顶点的id,作为主键,第二列是顶点的δ-邻居顶点集合,即其δ-邻居顶点的id数组,其中,所述的顶点的id是一个可以唯一标识该顶点的整数值。
一种用于δ-邻居顶点查询表的语义压缩方法,其特征在于,其具体实现过程如下:
首先,定义两个δ-邻居顶点集合Δi与Δj之间的相似度函数为:
sim ( Δ i , Δ j ) = 2 × | Δ i ∩ Δ j | | Δ i | + | Δ j |
定义一个δ-邻居顶点集合Δi与一个δ-邻居顶点集合的集合C之间的相似度函数为:
sim ( Δ i , C ) = Σ Δ j ∈ C sim ( Δ i , Δ j ) | C |
然后,利用聚类算法对生成的所有顶点的δ-邻居顶点集合进行聚类处理,其具体实现过程包括以步骤:
步骤A1:令R为初始为空的聚簇集合,V为图的顶点集合,δ为期望的最大答案树高度,θ为预设的相似度阈值;
步骤A2:判断,V是否为空?
若V不为空,则地从V中取一个顶点v,并得到其δ-邻居顶点集合Δv
若V为空,即表示V中所有顶点处理完毕后,本算法结束;
步骤A3:判断,R是否为空?
若R不为空,则对R中各个聚簇Ci,计算Δv与Ci的相似度sim(Δv,Ci);
若R为空,则将{Δv}作为一个新聚类加入R,回转执行步骤A2;
步骤A4:找出相似度最大的一个聚簇Ci,如果sim(Δv,Ci)大于阈值θ,则将Δv放入到Ci中,否则将{Δv}作为一个新聚类加入R,回转执行步骤A2。
作为优选,所述的匹配顶点裁剪索引包括两列,第一列是关键词,第二列是索引项;索引的键是关键词,索引项是一种为了提高处理效率和节约存储空间所专门设计的物理结构,一个关键词ti的索引项在物理上由若干个有序列表组成,其中,有序列表的第一个列表HListi被称为头列表,它存储该关键词所有的潜在根,其余的列表FListij被称为后续列表,其数量等于头列表中元素的个数,并与头列表中的元素按位置一一对应,每个后续列表存储了其在头列表中所对应的潜在根的δ-邻居顶点中包含了该关键词的匹配顶点,其中,1≤j≤n=|HListi|。
一种用于匹配顶点裁剪索引的分割方法,用于将其分割成若干个独立的部分索引,并将这些部分索引分布存储到多个主机上,其特征在于,其具体实现过程为:将图的顶点集合V分成m个不相交的子集V1,…,Vm,然后采用分割方式将一个完整的索引按列分割为多个部分索引,使得每个部分索引的物理结构与一个完整的索引完全相同,可以作为一个独立的匹配顶点裁剪索引来使用,一个部分索引项的头列表是完整索引项的头列表与其所对应的顶点子集Vj的交集,然后将完整索引项中的后续列表分配到对应的部分索引项中,使得每个后续列表与其所在的部分索引项的头列表中的元素一一对应,其中,1≤j≤m。
作为优选,所述的分布式索引的生成方法是基于MapReduce的并行算法,具体包括以下步骤:
步骤1:设计相应的Mapper函数,以一个不相交的顶点集合为输入,迭代地处理每个顶点,输出格式为((t,u),v)的中间结果,其中t是输入顶点v包含的一个关键词,u是v的一个δ邻居顶点;
步骤2:设计相应的Reducer函数,以经过排序的上述中间结果为输入,且只接收u属于与之对应的不相交的潜在根集合的输入,迭代地处理每个中间结果,将其组合成一个个完整的本地索引项,并将每个组合好的索引项写入本地磁盘,得到分布式索引;
步骤3:使用适用于整数数组的压缩技术对索引项进行压缩。
本发明具有以下优点和积极效果:
(1)本发明通过为图数据库建立一种索引,实现对关键词查询的匹配顶点进行合理裁剪,以可能存在的答案精度损失为代价换取了搜索效率的提高;
(2)本发明所采用的索引结构使得处理一个关键词查询所需的索引访问次数最少(即该查询所包含的关键词的个数),所以不要求索引必须驻留在内存中,这对于索引空间复杂度很高的图数据库来说大大降低了对内存的依赖;
(3)本发明通过将索引分布到多个主机和采用基于MapReduce的并行索引构建方法,可对超大规模的图数据库建立索引和进行搜索优化,这是现有技术所不具备的。
附图说明
图1:本发明实施例的δ-邻居顶点查询表的结构。
图2:本发明实施例的δ-邻居顶点集合的聚类算法流程图。
图3:本发明实施例的匹配顶点裁剪索引的结构。
图4:本发明实施例的匹配顶点裁剪索引的分割方法。
图5:本发明实施例的分布式构建图索引过程的数据流示意图。
图6:本发明实施例的Map端操作细节示意图。
图7:本发明实施例的Map函数程序流程图。
图8:本发明实施例的Reduce端操作细节示意图。
图9:本发明实施例的Reduce函数程序流程图。
具体实施方式
首先,对本发明的理论基础做如下阐述:
图数据库的关键词搜索问题可定义为:给定图G=(V,E)和关键词查询{k1,k2,...,kl},令V中包含关键词ki(1≤i≤l)的顶点为关键词ki的匹配顶点,在图中搜索包含所有关键词的至少一个匹配顶点的满足一定结构约束的子树。在搜索中,假设每个顶点的度为n,那么从某一个匹配顶点出发进行m步探索的时间代价为O(1+n+n2+…+nm)。所以,当一个查询的匹配顶点数量很多时,搜索会非常耗时。
本发明提出的图数据库索引用于对匹配顶点进行一种启发式裁剪,以可能存在的少量错误裁剪为代价换取搜索空间显著减小,从而极大地提高搜索效率。
由于图数据库的关键词搜索通常只要求返回k个结构最紧凑的答案树,本发明规定在搜索开始前将被裁剪的目标为:不能被任意一棵“δ-高度答案树”包含的匹配顶点。其定义如下所示。
定义(δ-高度答案树).令一棵答案树的根顶点与叶子顶点间的最长距离为它的高度,那么高度不超过δ的答案树即为δ-高度答案树。
本发明提出了一种利用顶点的“δ-邻居”和关键词的“潜在根”来找出能被至少一棵δ-高度答案树包含的匹配顶点的方法。其定义如下所示。
定义(δ-邻居).在图G中,给定一个顶点v,所有与v之间有至少一条长度不超过δ的路径的顶点都是v的的δ-邻居。
定义(潜在根).在图G中,顶点v是关键词t的潜在根,当且仅当v是t的一个匹配顶点的δ邻居顶点;
根据以上定义,如下定理成立。
定理.对于顶点v,如果v是查询中所有关键词的潜在根,那么v是查询的一棵δ-高度答案树的根顶点,反之亦然。
根据以上定理,本发明的裁剪规则为:
(1)当处理一个具体的关键词查询时,先计算该查询中各个关键词的潜在根的交集,根据上面的定理,这个集合中的顶点就是该查询的所有δ-高度答案树的根顶点;
(2)然后,对于查询的每个匹配顶点,如果它的δ-邻居与此集合没有交集,则显然该匹配顶点不会出现在查询的任何一棵δ-高度答案树中,本发明将其裁剪掉。
以下结合具体实施例和附图对本发明做进一步的说明。
本发明的一种用于图数据库搜索的分布式索引,包括以下内容:
所述的分布式索引包括一种δ-邻居顶点查询表,给定图中一个顶点,可以快速查找与其距离不超过参数δ的所有邻居顶点;
所述的分布式索引包括一种匹配顶点裁剪索引,给定一个关键词查询,可以通过利用各关键词的索引项的信息进行运算实现对匹配顶点的裁剪;
所述的分布式索引包括一种分布式匹配顶点裁剪索引,将每一个索引项分割成若干个独立的部分分布到多个主机上,每个主机所保存的本地索引只记录在一个特定的不相交的潜在根集合内的索引信息,这样使得每个主机都可以独立的进行搜索。
其中,本发明设计的一种被称为δ-邻居顶点查询表的索引结构,用来查询图中一个指定顶点的所有与其距离不超过δ的相连顶点的集合,它是构建匹配顶点裁剪索引的前提。请见图1,本实施例的δ-邻居顶点查询表包括两列,第一列是顶点的id,作为主键,第二列是顶点的δ-邻居顶点集合,即其δ-邻居顶点的id数组,其中,所述的顶点的id是一个可以唯一标识该顶点的整数值。顶点的id是一个可以唯一标识该顶点的整数值,我们用Δi来表示id为i的顶点的δ-邻居顶点集合。在实现中可采取B树或哈希表存储以提供快速查找指定顶点。
本发明还设计了一种δ-邻居顶点查询表的语义压缩方法,其具体实现过程如下:
首先,定义两个δ-邻居顶点集合Δi与Δj之间的相似度函数为:
sim ( Δ i , Δ j ) = 2 × | Δ i ∩ Δ j | | Δ i | + | Δ j |
定义一个δ-邻居顶点集合Δi与一个δ-邻居顶点集合的集合C之间的相似度函数为:
sim ( Δ i , C ) = Σ Δ j ∈ C sim ( Δ i , Δ j ) | C |
然后,利用聚类算法对生成的所有顶点的δ-邻居顶点集合进行聚类处理,请见图2,其具体实现过程包括以步骤:
步骤A1:令R为初始为空的聚簇集合,V为图的顶点集合,δ为期望的最大答案树高度,θ为预设的相似度阈值;
步骤A2:判断,V是否为空?
若V不为空,则地从V中取一个顶点v,并得到其δ-邻居顶点集合Δv
若V为空,即表示V中所有顶点处理完毕后,本算法结束;
步骤A3:判断,R是否为空?
若R不为空,则对R中各个聚簇Ci,计算Δv与Ci的相似度sim(Δv,Ci);
若R为空,则将{Δv}作为一个新聚类加入R,回转执行步骤A2;
步骤A4:找出相似度最大的一个聚簇Ci,如果sim(Δv,Ci)大于阈值θ,则将Δv放入到Ci中,否则将{Δv}作为一个新聚类加入R,回转执行步骤A2。
完成聚类后,将得到的每一个聚簇中各个δ-邻居顶点集合间的公共顶点提取出来成为一个独立的公共顶点集合,这样各个δ-邻居顶点集合就可以节约存储公共顶点集合中顶点的空间,而只需要存储一个公共顶点集合的编号即可。
本发明设计的一种分布式匹配顶点裁剪索引。通过查询索引,可以在执行关键词搜索之前得到各个关键词的经过裁剪的匹配顶点集合,从而降低搜索空间。
请见图3,所述的匹配顶点裁剪索引包括两列,第一列是关键词,第二列是索引项;索引的键是关键词,索引项是一种为了提高处理效率和节约存储空间所专门设计的物理结构,一个关键词ti的索引项在物理上由若干个有序列表组成,其中,有序列表的第一个列表HListi被称为头列表,它存储该关键词所有的潜在根,其余的列表FListij被称为后续列表,其数量等于头列表中元素的个数,并与头列表中的元素按位置一一对应,每个后续列表存储了其在头列表中所对应的潜在根的δ-邻居顶点中包含了该关键词的匹配顶点,其中,1≤j≤n=|HListi|。
本发明设计的一种匹配顶点裁剪索引的分割方法,用于将其分割成若干个独立的部分索引,并将这些部分索引分布存储到多个主机上,请见图4,其具体实现过程为:将图的顶点集合V分成m个不相交的子集V1,…,Vm,然后采用分割方式将一个完整的索引按列分割为多个部分索引,使得每个部分索引的物理结构与一个完整的索引完全相同,可以作为一个独立的匹配顶点裁剪索引来使用,一个部分索引项的头列表是完整索引项的头列表与其所对应的顶点子集Vj的交集,然后将完整索引项中的后续列表分配到对应的部分索引项中,使得每个后续列表与其所在的部分索引项的头列表中的元素一一对应,其中,1≤j≤m。
上述的分布式索引的生成方法是基于MapReduce的并行算法,具体包括以下步骤:
步骤1:设计相应的Mapper函数,以一个不相交的顶点集合为输入,迭代地处理每个顶点,输出格式为((t,u),v)的中间结果,其中t是输入顶点v包含的一个关键词,u是v的一个δ邻居顶点;
步骤2:设计相应的Reducer函数,以经过排序的上述中间结果为输入,且只接收u属于与之对应的不相交的潜在根集合的输入,迭代地处理每个中间结果,将其组合成一个个完整的本地索引项,并将每个组合好的索引项写入本地磁盘,得到分布式索引;
步骤3:使用适用于整数数组的压缩技术对索引项进行压缩。
构建图索引的过程涉及对磁盘的频繁读写,由于磁盘的读写速度相对较慢,因此磁盘I/O是性能的主要瓶颈。本发明设计的一种并行构建分布式匹配顶点裁剪索引的方法,可以在生成分布式索引的同时在多个本地磁盘上进行写入,从而突破磁盘I/O瓶颈的限制。
本发明采用了MapReduce并行计算框架来实现并行索引构建。请见图5,MapReduce包含两个核心函数:Map和Reduce。在构建索引时,集群中每个主机运行一或两个Map进程,以及一个Reduce进程。图数据库中的顶点数据会根据Map进程总数被划分为若干个切片分给Map进程,保持各个主机的负载平衡。
本发明在Map操作阶段,主要是对图数据进行处理,并通过访问δ-邻居顶点查询表,计算得到关键词的潜在根,然后生成键值对(Key-Value)形式的中间结果,请见图6。中间结果的格式定义为<<t,u>,v>,其中<t,u>是键,t是一个关键词,顶点u是t的一个潜在根,顶点v作为值是u的δ-邻居顶点集合中关键词t的匹配顶点。
请见图7,为具体的Map函数程序流程图。对于输入顶点v,从δ-邻居顶点查询表中获取所有v的δ-邻居顶点集合Δv。对于顶点标签l(v)中每一个关键词t和Δv中每一个顶点u,生成一个中间结果<<t,u>,v>,并直接将其发送出去。
被发送出去的中间结果将首先根据t来进行洗牌,即:如果一个中间结果的t属于一个事先分好的顶点子集Vj(1≤j≤m),那么它就会被发送到负责生成与之对应的部分索引的主机。每个主机在收到属于自己的所有中间结果后,会根据键对其进行排序。键<t,v>的排序规则为:先以t的字母表顺序进行排序,如果t相同,则以v的大小顺序排序。排序后的中间结果集合将作为该主机上Reduce进程的输入数据。
本发明在Reduce操作阶段,主要对Map输出的数据进行合并和排序,将包含相同关键词的中间结果组合成该关键词的索引项,然后写入到存储索引的本地数据库中,请见图8。
请见图9,为具体的Reduce函数程序流程图。Reduce函数有两个输入参数,一个是键<t,u>,另一个是与之对应的匹配顶点的集合{v}。变量t’表示Reduce函数上一次被调用时的输入参数<t’,u’>中的关键词。如果当前的关键词t与t’不同,则说明t’的相关数据已经处理完毕,所以将其索引项mvp(t’)写入索引,并且初始化一个新的索引项mvp(t’),令t’=t。然后,根据新的输入参数来更新索引项mvp(t’),将u插入到索引项的头列表中,将{v}中元素插入到其对应的后续列表中。
以上实例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或类型,因此所有等同的技术方案,都落入本发明的保护范围。

Claims (6)

1.一种用于图数据库搜索的分布式索引,其特征在于,包括以下内容:
所述的分布式索引包括一种δ-邻居顶点查询表,给定图中一个顶点,可以快速查找与其距离不超过参数δ的所有邻居顶点;
所述的分布式索引包括一种匹配顶点裁剪索引,给定一个关键词查询,可以通过利用各关键词的索引项的信息进行运算实现对匹配顶点的裁剪;
所述的分布式索引包括一种分布式匹配顶点裁剪索引,将每一个索引项分割成若干个独立的部分分布到多个主机上,每个主机所保存的本地索引只记录在一个特定的不相交的潜在根集合内的索引信息,这样使得每个主机都可以独立的进行搜索。
2.根据权利要求1所述的用于图数据库搜索的分布式索引,其特征在于:所述的δ-邻居顶点查询表包括两列,第一列是顶点的id,作为主键,第二列是顶点的δ-邻居顶点集合,即其δ-邻居顶点的id数组,其中,所述的顶点的id是一个可以唯一标识该顶点的整数值。
3.一种用于权利要求1或2所述的δ-邻居顶点查询表的语义压缩方法,其特征在于,其具体实现过程如下:
首先,定义两个δ-邻居顶点集合Δi与Δj之间的相似度函数为:
sim ( &Delta; i , &Delta; j ) = 2 &times; | &Delta; i &cap; &Delta; j | | &Delta; i | + | &Delta; j |
定义一个δ-邻居顶点集合Δi与一个δ-邻居顶点集合的集合C之间的相似度函数为:
sim ( &Delta; i , C ) = &Sigma; &Delta; j &Element; C sim ( &Delta; i , &Delta; j ) | C |
然后,利用聚类算法对生成的所有顶点的δ-邻居顶点集合进行聚类处理,其具体实现过程包括以步骤:
步骤A1:令R为初始为空的聚簇集合,V为图的顶点集合,δ为期望的最大答案树高度,θ为预设的相似度阈值;
步骤A2:判断,V是否为空?
若V不为空,则地从V中取一个顶点v,并得到其δ-邻居顶点集合Δv
若V为空,即表示V中所有顶点处理完毕后,本算法结束;
步骤A3:判断,R是否为空?
若R不为空,则对R中各个聚簇Ci,计算Δv与Ci的相似度sim(Δv,Ci);
若R为空,则将{Δv}作为一个新聚类加入R,回转执行步骤A2;
步骤A4:找出相似度最大的一个聚簇Ci,如果sim(Δv,Ci)大于阈值θ,则将Δv放入到Ci中,否则将{Δv}作为一个新聚类加入R,回转执行步骤A2。
4.根据权利要求1所述的用于图数据库搜索的分布式索引,其特征在于:所述的匹配顶点裁剪索引包括两列,第一列是关键词,第二列是索引项;索引的键是关键词,索引项是一种为了提高处理效率和节约存储空间所专门设计的物理结构,一个关键词ti的索引项在物理上由若干个有序列表组成,其中,有序列表的第一个列表HListi被称为头列表,它存储该关键词所有的潜在根,其余的列表FListij被称为后续列表,其数量等于头列表中元素的个数,并与头列表中的元素按位置一一对应,每个后续列表存储了其在头列表中所对应的潜在根的δ-邻居顶点中包含了该关键词的匹配顶点,其中,1≤j≤n=|HListi|。
5.一种用于权利要求1或4所述的匹配顶点裁剪索引的分割方法,用于将其分割成若干个独立的部分索引,并将这些部分索引分布存储到多个主机上,其特征在于,其具体实现过程为:将图的顶点集合V分成m个不相交的子集V1,…,Vm,然后采用分割方式将一个完整的索引按列分割为多个部分索引,使得每个部分索引的物理结构与一个完整的索引完全相同,可以作为一个独立的匹配顶点裁剪索引来使用,一个部分索引项的头列表是完整索引项的头列表与其所对应的顶点子集Vj的交集,然后将完整索引项中的后续列表分配到对应的部分索引项中,使得每个后续列表与其所在的部分索引项的头列表中的元素一一对应,其中,1≤j≤m。
6.根据权利要求1所述的用于图数据库搜索的分布式索引,其特征在于:所述的分布式索引的生成方法是基于MapReduce的并行算法,具体包括以下步骤:
步骤1:设计相应的Mapper函数,以一个不相交的顶点集合为输入,迭代地处理每个顶点,输出格式为((t,u),v)的中间结果,其中t是输入顶点v包含的一个关键词,u是v的一个δ邻居顶点;
步骤2:设计相应的Reducer函数,以经过排序的上述中间结果为输入,且只接收u属于与之对应的不相交的潜在根集合的输入,迭代地处理每个中间结果,将其组合成一个个完整的本地索引项,并将每个组合好的索引项写入本地磁盘,得到分布式索引;
步骤3:使用适用于整数数组的压缩技术对索引项进行压缩。
CN201310681577.9A 2013-12-13 2013-12-13 一种用于图数据库搜索的分布式索引及其并行生成方法 Pending CN103646079A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310681577.9A CN103646079A (zh) 2013-12-13 2013-12-13 一种用于图数据库搜索的分布式索引及其并行生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310681577.9A CN103646079A (zh) 2013-12-13 2013-12-13 一种用于图数据库搜索的分布式索引及其并行生成方法

Publications (1)

Publication Number Publication Date
CN103646079A true CN103646079A (zh) 2014-03-19

Family

ID=50251293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310681577.9A Pending CN103646079A (zh) 2013-12-13 2013-12-13 一种用于图数据库搜索的分布式索引及其并行生成方法

Country Status (1)

Country Link
CN (1) CN103646079A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927360A (zh) * 2014-04-18 2014-07-16 北京大学 基于图模型的软件项目语义信息表示及检索方法
CN104036051A (zh) * 2014-07-04 2014-09-10 南开大学 一种基于标签传播的数据库模式摘要生成方法
CN104484368A (zh) * 2014-12-05 2015-04-01 深圳大学 一种基于MapReduce的大规模图数据关键词搜索算法
CN105117421A (zh) * 2015-07-31 2015-12-02 四川长虹电器股份有限公司 基于图结构匹配的社交网络分析方法
WO2017114164A1 (zh) * 2015-12-28 2017-07-06 阿里巴巴集团控股有限公司 一种图数据的处理方法和装置
WO2018137346A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种图数据处理的方法及装置
CN111178373A (zh) * 2018-11-09 2020-05-19 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN111190904A (zh) * 2019-12-30 2020-05-22 四川蜀天梦图数据科技有限公司 一种图-关系数据库混合存储的方法和装置
CN111966843A (zh) * 2020-08-14 2020-11-20 北京同心尚科技发展有限公司 图数据库构建方法、路径搜索方法、装置和电子设备
CN112800287A (zh) * 2021-04-15 2021-05-14 杭州欧若数网科技有限公司 基于图数据库的全文索引方法和系统
CN113065035A (zh) * 2021-03-29 2021-07-02 武汉大学 一种单机核外属性图计算方法
CN117370790A (zh) * 2023-10-13 2024-01-09 江苏智谨创新能源科技有限公司 一种光伏发电组件故障自动报警方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243811A1 (en) * 2007-03-29 2008-10-02 Ibm Corporation System and method for ranked keyword search on graphs
CN102163218A (zh) * 2011-03-28 2011-08-24 武汉大学 基于图索引的图数据库关键词邻近搜索方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243811A1 (en) * 2007-03-29 2008-10-02 Ibm Corporation System and method for ranked keyword search on graphs
CN102163218A (zh) * 2011-03-28 2011-08-24 武汉大学 基于图索引的图数据库关键词邻近搜索方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MING ZHONG, MENGCHI LIU: "A Distributed Index for Efficient Parallel Top-k Keyword Search on Massive Graphs", 《12TH ACM INTERNATIONAL WORKSHOP ON WEB INFORMATION AND DATA MANAGEMENT (WIDM) CO-LOCATED WITH 21ST ACM INTERNATIONAL CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT (CIKM)》 *
桑雷等: "FindGrape:一个高效的图数据库关键词搜索引擎", 《计算机研究与发展》 *
王纵虎等: "基于统计学习的自适应文本聚类", 《四川大学学报》 *
黄发良等: "基于线图与PSO的网络重叠社区发现", 《自动化学报》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927360A (zh) * 2014-04-18 2014-07-16 北京大学 基于图模型的软件项目语义信息表示及检索方法
CN104036051A (zh) * 2014-07-04 2014-09-10 南开大学 一种基于标签传播的数据库模式摘要生成方法
CN104036051B (zh) * 2014-07-04 2017-04-05 南开大学 一种基于标签传播的数据库模式摘要生成方法
CN104484368A (zh) * 2014-12-05 2015-04-01 深圳大学 一种基于MapReduce的大规模图数据关键词搜索算法
CN104484368B (zh) * 2014-12-05 2018-04-24 深圳大学 一种基于MapReduce的大规模图数据关键词搜索方法
CN105117421A (zh) * 2015-07-31 2015-12-02 四川长虹电器股份有限公司 基于图结构匹配的社交网络分析方法
CN105117421B (zh) * 2015-07-31 2018-07-17 四川长虹电器股份有限公司 基于图结构匹配的社交网络分析方法
WO2017114164A1 (zh) * 2015-12-28 2017-07-06 阿里巴巴集团控股有限公司 一种图数据的处理方法和装置
WO2018137346A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种图数据处理的方法及装置
CN111178373A (zh) * 2018-11-09 2020-05-19 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN111178373B (zh) * 2018-11-09 2021-07-09 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN111190904A (zh) * 2019-12-30 2020-05-22 四川蜀天梦图数据科技有限公司 一种图-关系数据库混合存储的方法和装置
CN111190904B (zh) * 2019-12-30 2023-12-08 四川蜀天梦图数据科技有限公司 一种图-关系数据库混合存储的方法和装置
CN111966843A (zh) * 2020-08-14 2020-11-20 北京同心尚科技发展有限公司 图数据库构建方法、路径搜索方法、装置和电子设备
CN113065035A (zh) * 2021-03-29 2021-07-02 武汉大学 一种单机核外属性图计算方法
CN112800287A (zh) * 2021-04-15 2021-05-14 杭州欧若数网科技有限公司 基于图数据库的全文索引方法和系统
CN117370790A (zh) * 2023-10-13 2024-01-09 江苏智谨创新能源科技有限公司 一种光伏发电组件故障自动报警方法及系统

Similar Documents

Publication Publication Date Title
CN103646079A (zh) 一种用于图数据库搜索的分布式索引及其并行生成方法
CN110990638B (zh) 基于fpga-cpu异构环境的大规模数据查询加速装置及方法
EP3144826B1 (en) A method and apparatus for representing compound relationships in a graph database
US20140172914A1 (en) Graph query processing using plurality of engines
US20140172810A1 (en) Graph Traversal Operator Inside a Column Store
WO2017019879A1 (en) Multi-query optimization
Sheth Semantic Services, Interoperability and Web Applications: Emerging Concepts: Emerging Concepts
Huang et al. GeoSpark SQL: An effective framework enabling spatial queries on spark
CN103440288A (zh) 一种大数据存储方法及装置
CN113254630B (zh) 一种面向全球综合观测成果的领域知识图谱推荐方法
CN105975440A (zh) 一种基于图计算模型的矩阵分解并行化方法
Elsayed et al. Mapreduce: State-of-the-art and research directions
CN114297173B (zh) 一种面向大规模海量数据的知识图谱构建方法和系统
CN106528648A (zh) 结合Redis内存数据库的分布式RDF关键词近似搜索方法
CN109325029A (zh) 基于稀疏矩阵的rdf数据存储和查询方法
CN106874425A (zh) 基于Storm的实时关键词近似搜索算法
CN114329096A (zh) 一种原生图数据库处理方法及系统
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
CN115905630A (zh) 一种图数据库查询方法、装置、设备及存储介质
Khodaei et al. Temporal-textual retrieval: Time and keyword search in web documents
CN115237937A (zh) 一种基于星际文件系统的分布式协同查询处理系统
Mittal et al. Efficient random data accessing in MapReduce
Hassan et al. S3QLRDF: distributed SPARQL query processing using Apache Spark—a comparative performance study
CN111125216A (zh) 数据导入Phoenix的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140319