图数据的搜索方法和装置制造方法

文档序号:6637966阅读:217来源:国知局
图数据的搜索方法和装置制造方法
【专利摘要】本发明实施例提供一种图数据的搜索方法和装置,该方法包括:获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系;通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。本发明提供的方法,提高了搜索图数据的效率,并节省了计算机的存储资源和时间资源。
【专利说明】图数据的搜索方法和装置

【技术领域】
[0001] 本发明实施例设及计算机技术,尤其设及一种图数据的捜索方法和装置。

【背景技术】
[0002] 随着计算机技术的不断发展,计算机处理的数据量也逐渐增大,而当前的大数据 时代也正是一个图数据繁荣发展的时代,该里的图数据是相互之间具有关联关系的数据。 基于此,计算机往往需要进行全量大数据分析,通过大量的时间资源和计算机的存储资源 消耗,得到精确的捜索结果。
[0003] 为了避免传统捜索机制带来的资源消耗,现有技术中提出了一种数据采样查询 炬linkDB)技术,W特定的采样算法对原始图数据进行持续的采样,建立图数据样本并进行 维护,进而获取相应的捜索结果。
[0004] 但是,现有技术的数据采样查询炬linkDB)技术中需要使用额外的存储开销W维 护图数据样本,很大程度上对计算机的存储资源造成浪费。


【发明内容】

[0005] 本发明实施例提供一种图数据的捜索方法和装置,在有效捜索图数据的同时,避 免捜索图数据时造成的资源浪费。
[0006] 第一方面,本发明实施例提供一种图数据的捜索方法,包括:
[0007] 获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请 求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所 述起始图节点、多个待查图节点W及所述起始图节点与所述多个待查图节点之间的关联关 系W及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系;
[000引根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查 询条件的第二待查图节点和包含所述第二待查图节点的关联关系,W得到规约子图;所述 规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点W及所述起始图节 点与所述第一待查图节点之间的关联关系;
[0009] 通过所述查询条件查询所述规约子图,W得到所述第一待查图节点。
[0010] 结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述查询条件 和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和 包含所述第二待查图节点对应的关联关系,W得到规约子图,包括:
[0011] 根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节点,W 及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系;
[0012] 根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第 一待查图节点的第一访问代价W及所述可用资源条件,过滤所述图数据集合中其访问代价 超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,W得到 所述规约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
[0013] 结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式 中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一 待查图节点的第一访问代价W及所述可用资源条件,过滤所述图数据集合中其访问代价超 过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,W得到所 述规约子图,包括:
[0014] 读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,其中所述存储 空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查 询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始 图节点与所述起始查询节点相匹配;
[0015] 判断所述规约子图中是否包括所述读取的图节点;
[0016] 若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述 规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
[0017] 根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图 节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待 查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并 根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的 待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问 序列中的待查图节点的数目。
[001引结合第一方面的第一种可能的实施方式,在第一方面的第=种可能的实施方式 中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一 待查图节点的第一访问代价W及所述可用资源条件,过滤所述图数据集合中其访问代价超 过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,W得到所 述规约子图,包括:
[0019] 步骤A ;将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点 的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设 值;
[0020] 步骤B ;将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存 储空间;所述起始图节点与所述起始查询节点相匹配;
[002U 步骤C ;读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点; [0022] 步骤D ;判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节 点包括所述起始图节点或所述待查图节点;
[002引步骤E;若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添 加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
[0024] 步骤F ;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读 取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的 第二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联 关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列 中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述 访问序列中的待查图节点的数目;
[002引步骤G ;判断所述存储空间是否为空;
[0026] 步骤H;若所述存储空间非空,则返回执行步骤C,直至所述存储空间存储的查询 节点的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则判 断所述规约子图是否发生变化;
[0027] 步骤I ;若判断所述规约子图没有发生变化,则结束计算,W得到所述规约子图。 [002引结合第一方面的第一种可能的实施方式,在第一方面的第四种可能的实施方式 中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一 待查图节点的第一访问代价W及所述可用资源条件,过滤所述图数据集合中其访问代价超 过所述第一访问代价的第二待查图节点和包含所述第二待查图节点对应的关联关系,W得 到所述规约子图,包括:
[0029] 步骤A ;将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点 的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设 值;
[0030] 步骤B ;将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存 储空间;所述起始图节点与所述起始查询节点相匹配;
[003U 步骤C;读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点, 并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记;
[0032] 步骤D ;判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节 点包括所述起始图节点或所述待查图节点;
[003引步骤E;若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添 加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
[0034] 步骤F ;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读 取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的 第二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联 关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列 中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述 访问序列中的待查图节点的数目;
[0035] 步骤G ;判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的 查询节点匹配的图节点;
[0036] 步骤H ;若所述存储空间中存在未打标记的查询节点和与所述未打标记的查询节 点匹配的图节点,则返回执行步骤C,直至所述存储空间存储的查询节点和与所述查询节点 匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的 图节点均打有标记,则判断所述规约子图是否发生变化;
[0037] 步骤I ;若判断所述规约子图没有发生变化,则结束计算,W得到所述规约子图。 [003引结合第一方面的第=种可能的实施方式或第一方面的第四种可能的实施方式, 在第一方面的第五种可能的实施方式中,所述判断所述规约子图是否发生变化之后,还包 括:
[0039] 若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图 节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值;
[0040] 执行步骤C。
[0041] 结合第一方面的第=种可能的实施方式至第一方面的第五种可能的实施方式中 的任一项,在第一方面的第六种可能的实施方式中,所述方法还包括:
[0042] 若所述规约子图所占的资源超过所述可用资源条件,则结束计算,W得到所述规 约子图。
[0043] 第二方面,本发明实施例提供一种图数据的捜索方法,包括:
[0044] 获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条 件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所 述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,W及,所述起始图 节点、所述终止图节点W及所述多个待查图节点之间的关联关系;
[0045] 根据所述图数据集合中的多个图节点的中间度核屯、性和预设的可用资源条件确 定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树;其中,所述路标节点 树包括具有层次关系的路标节点;
[0046] 根据所述查询条件捜索所述路标节点树,W得到所述第一待查图节点。
[0047] 结合第二方面,在第二方面的第一种可能的实施方式中,根据所述查询条件捜索 所述路标节点树,W得到所述第一待查图节点,包括:
[0048] 根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息;
[0049] 根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略;
[0化0] 根据所述路径策略捜索所述路标节点树,W得到所述第一待查图节点。
[0化1] 本发明实施例提供的图数据的捜索方法和装置中,根据查询请求中的查询条件和 预设的可用资源条件过滤图数据集合中不满足查询条件的第二待查图节点,W得到规约子 图,通过所述查询条件查询所述规约子图,W得到所需要的第一待查图节点,可见本发明实 施例可W基于查询条件实时生成对应的规约子图,并根据实时生成的规约子图得到查询结 果,提高了计算机捜索图数据的准确性,而且在本发明实施例采用查询条件对图数据集合 的图节点进行过滤W生成规约子图的过滤过程中不会占用计算机的存储资源,并且所生成 的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低了计 算机的存储开销;进一步地,本发明实施例提供的方法中根据所述查询条件和预设的可用 资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二 待查图节点的关联关系,W得到规约子图,通过所述查询条件查询所述规约子图,W得到所 需要的第一待查图节点,可见本发明实施例可W支持在不同的资源限制下得到较为精确的 查询结果,从而克服了传统查询技术无法在不同资源限制下均能返回查询结果的缺陷。 [0052] 第S方面,本发明提供一种图数据的捜索装置,包括:
[0化3] 获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点的查询条 件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图 数据集合包括所述起始图节点、多个待查图节点W及所述起始图节点与所述多个待查图节 点之间的关联关系W及所述多个待查图节点中的每个待查图节点与其它待查图节点之间 的关联关系;
[0054] 处理模块,用于根据所述查询条件和预设的可用资源条件过滤所述图数据集合中 不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,W得到规 约子图,并通过所述查询条件查询所述规约子图,w得到所述第一待查图节点;其中,所述 规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点W及所述起始图节 点与所述第一待查图节点之间的关联关系
[0055] 结合第=方面,在第=方面的第一种可能的实施方式中,所述处理模块,具体用于 根据所述查询条件生成查询拓扑结构,并根据所述查询拓扑结构中的查询节点之间的查询 拓扑关系和预设的访问所述第一待查图节点的第一访问代价W及所述可用资源条件,过滤 所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二 待查图节点的关联关系,W得到所述规约子图;其中,所述查询拓扑结构包括多个查询节 点,W及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系,所述 规约子图所占的资源不超过所述可用资源条件。
[0化6] 结合第=方面的第一种可能的实施方式,在第=方面的第二种可能的实施方式 中,所述处理模块,具体用于读取存储空间中存储的查询节点和与所述查询节点匹配的图 节点,判断所述规约子图中是否包括所述读取的图节点,若所述规约子图中不包括所述读 取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的 资源不超过所述可用资源条件,则进一步根据所述查询拓扑结构中的查询节点之间的查询 拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超 过所述第一访问代价的第二待查图节点W及包含所述访问代价超过所述第一访问代价的 第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问 序列;其中,所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相 匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述 待查图节点,所述起始图节点与所述起始查询节点相匹配;所述访问序列中的待查图节点 的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待 查图节点的数目。
[0057] 结合第=方面的第一种可能的实施方式,在第=方面的第=种可能的实施方式 中,所述处理模块,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的 查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为 第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储 空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点后,判断 所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节 点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资 源不超过所述可用资源条件后,进一步根据所述查询拓扑结构中的查询节点之间的查询拓 扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,过滤所述访问代价超过所 述第一访问代价的第二待查图节点W及包含所述访问代价超过所述第一访问代价的第二 待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列; 并进一步判断所述存储空间是否为空,若所述存储空间非空,则继续读取所述存储空间中 存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数 目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则进一步判断 所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,W得到所 述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所 述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述 第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
[005引结合第=方面的第一种可能的实施方式,在第=方面的第四种可能的实施方式 中,所述处理模块,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的 查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为 第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储 空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所 述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记后,进一步判断所 述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点, 则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不 超过所述可用资源条件,并进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关 系计算与所述读取的图节点相邻的待查图节点的访问代价后,过滤所述访问代价超过所述 第一访问代价的第二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待 查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并 进一步判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点 匹配的图节点;若所述存储空间存在未打标记的查询节点和与所述未打标记的查询节点 匹配的图节点,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节 点,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止; 若所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记空,则进一步 判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,W得 到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包 括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过 所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
[0059] 结合第=方面的第=种可能的实施方式或第=方面的第四种可能的实施方式,在 第=方面的第五种可能的实施方式中,所述处理模块,还用于若判断所述规约子图发生变 化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将 所述动态规约参数的值调整为第二预设值,并继续读取所述存储空间中存储的查询节点和 与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节 点匹配的图节点的数目为零为止或直至所述存储空间存储的查询节点和与所述查询节点 匹配的图节点均打有标记为止。
[0060] 结合第=方面的第=种可能的实施方式至第=方面的第五种可能的实施方式中 的任一项,在第=方面的第六种可能的实施方式中,所述处理模块,还用于若所述规约子图 所占的资源超过所述可用资源条件,则结束计算,W得到所述规约子图。
[0061] 第四方面,本发明实施例提供一种图数据的捜索装置,包括:
[0062] 获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点和终止图 节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待 查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,W及, 所述起始图节点、所述终止图节点W及所述多个待查图节点之间的关联关系;
[0063] 处理模块,用于根据所述图数据集合中的多个图节点的中间度核屯、性和预设的可 用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树,并根 据所述查询条件捜索所述路标节点树,W得到所述第一待查图节点;其中,所述路标节点树 包括具有层次关系的路标节点。
[0064] 结合第四方面,在第四方面的第一种可能的实施方式中,所述处理模块,具体用于 根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点 的辅助信息确定用于获取所述第一待查图节点的路径策略后,根据所述路径策略捜索所述 路标节点树,W得到所述第一待查图节点。
[00化]本发明实施例提供的图数据的捜索方法和装置,通过根据确定图数据集合中图节 点的中间度核屯、性和预设的可用资源条件确定路标节点,并建立路标节点树,然后根据查 询条件捜索该路标节点树确定满足该查询条件的第一待查图节点。由于在捜索第一待查图 节点的过程中采用了路标节点树,使得捜索第一待查图节点所经过的路径和图节点均为直 接有效的路径和图节点,避免了计算机在获取第一待查图节点时的无效捜索,节省了计算 机的时间资源,提高了捜索效率。

【专利附图】

【附图说明】
[0066] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可W 根据该些附图获得其他的附图。
[0067] 图1为本发明提供的分布式计算系统结构示意图;
[0068] 图2为本发明提供的图数据的捜索方法实施例一的流程示意图;
[0069] 图3为本发明提供的图数据集合示意图一;
[0070] 图4为本发明提供的规约子图示意图;
[0071] 图5为本发明提供的图数据的捜索方法实施例二的流程示意图;
[0072] 图6为本发明提供的查询拓扑结构示意图;
[0073] 图7为本发明提供的图数据的捜索方法实施例S的流程示意图;
[0074] 图8为本发明提供的图数据的捜索方法实施例四的流程示意图;
[0075] 图9为本发明提供的图数据的捜索方法实施例五的流程示意图;
[0076] 图10为本发明提供的图数据的捜索方法实施例六的流程示意图;
[0077] 图11为本发明提供的图数据集合示意图二;
[007引图12为本发明提供的路标节点树示意图;
[0079] 图13为本发明提供的图数据的捜索方法实施例走的流程示意图;
[0080] 图14为本发明实施例提供的图数据的捜索装置实施例一的结构示意图;
[0081] 图15为本发明实施例提供的图数据的捜索装置实施例二的结构示意图;
[0082] 图16为本发明实施例提供的图数据的捜索设备实施例一的结构示意图;
[0083] 图17为本发明实施例提供的图数据的捜索设备实施例二的结构示意图。

【具体实施方式】
[0084] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085] 本发明实施例适用于捜索大规模图数据的场景,其具体适用于应用于分布式计算 系统中的计算节点进行图数据捜索的场景。该分布式计算系统包括至少一个计算节点,该 计算节点例如可W是计算机,也可W是计算机中的服务器,还可W是面向用户的通信设备。 该分布式计算系统可W参见图1所示的系统架构图,可选的,中屯、节点为接收用户查询命 令的计算节点,该中屯、节点可W将用户输入的查询命令拆分成不同的查询请求,并将所拆 分的查询请求发送给对应的计算节点,从而使得分布式计算系统中的其他计算节点可W根 据中屯、节点拆分的查询请求捜索数据。当然,中屯、节点所拆分的查询请求中也可W包括自 己对应的查询请求,即中屯、节点也可W根据自身对应的查询请求捜索数据。可选的,下述实 施例的技术方案均W计算机作为执行主体来介绍。
[0086] 图2为本发明提供的图数据的捜索方法实施例一的流程示意图。如图2所示,该 方法包括:
[0087] S101 ;获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述 查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合 包括所述起始图节点、多个待查图节点W及所述起始图节点与所述多个待查图节点之间的 关联关系W及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关 系。
[008引具体的,计算机获取用户的查询请求。可选的,该查询请求可W是用户配置给计算 机的,还可W是用户通过其他设备发送给计算机的,例如通过图1所示的中屯、节点发送给 该计算机的。该查询请求中可W包括携带起始图节点的查询条件,并且该查询请求用于查 询图数据集合与该查询条件匹配的第一待查图节点。需要说明的是,图数据集合中所包括 的数据可图节点的形式存储,故图数据集合中可W包括起始图节点、多个待查图节点 W及起始图节点与所述多个待查图节点之间的关联关系W及所述多个待查图节点中的每 个待查图节点与其它待查图节点之间的关联关系。该关联关系在图数据集合中指的是起始 图节点与各个待查图节点构成的边。另外,图数据集合中的待查图节点为待捜索图节点或 待查询图节点。
[0089] 需要说明的是,图数据集合中起始图节点和待查图节点均是用数据来表征的,并 且,起始图节点与所述待测图节点之间的关联关系也是用数据的关联关系来表征的;另外, 上述第一待查图节点可W为一个,也可W为多个。
[0090] 例如,参见图3所示的图数据集合,假设查询请求中的查询条件为"找到所有认识 michael所在的徒步旅行俱乐部成员和LA自行车俱乐部成员的自行车爱好者"。图3中 michael为图数据集合的起始图节点,除michael之外的所有图节点均为待查图节点。图3 中的HG代表的是徒步旅行俱乐部,hg代表的是徒步旅行俱乐部的成员,即为图数据集合中 的待查图节点,CC代表的是自行车俱乐部,CC代表的是自行车俱乐部的成员,其也是图数 据集合中的待查图节点。另外,图3中所示的michael与其他待查图节点之间的连接线即 为图数据集合中的起始图节点与待查图节点之间的关联关系,该关联关系即为起始图节点 与各个待查图节点构成的边。
[0091] S102;根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所 述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,W得到规约子图; 所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点W及所述起始 图节点与所述第一待查图节点之间的关联关系。
[0092] 具体的,计算机获取到查询请求后,解析该查询请求并获知该查询请求中的查询 条件,然后根据该查询条件和计算机预设的可用资源条件确定图数据集合中不满足该查询 条件的第二待查图节点和包含所述第二待查图节点的关联关系,并将该些不满足该查询条 件的第二待查图节点和包含第二待查图节点的关联关系过滤掉,从而获得规约子图。该规 约子图中包括起始图节点和与上述查询条件匹配的第一待查图节点W及起始图节点与该 第一待查图节点之间的关联关系,可选的,该规约子图可W为图形模式,还可W为具有关联 关系的映射集合的形式,还可W为其他的可W表征起始图节点与该第一待查图节点之间的 关联关系的形式,只要该规约子图可W使得计算机快速的根据查询条件捜索到想要的结果 即可。上述可用资源条件可W为资源大小的阔值或资源大小的范围值或资源大小的上限值 等。上述计算机所过滤的不满足所述查询条件的第二待测图节点可W是一个或多个。
[0093] 需要说明的是,本发明实施例设及的"过滤"操作是指计算机从图数据集合中将不 满足查询条件的第二待查图节点和第二待查图节点对应的关联关系进行筛选或忽略,从而 将图数据集合中剩余的待查图节点生成规约子图,并且将所生成的规约子图动态缓存在内 存中,待计算机根据该规约子图获取到第一待查图节点之后,将该规约子图进行释放。也 就是说,计算机并不需要将该规约子图从内存写入磁盘,节省了计算机磁盘的存储开销;并 且,计算机直接从内存中的规约子图中捜索得到第一待查节点,不用执行从磁盘到内存的 10操作,因此所花费的时间处理资源小,有效的提高了计算机捜索图数据的效率。
[0094] 另外,上述图数据集合中所述的"起始图节点与所述待查图节点之间的关联关系" 仅指的是图数据集合中所有图节点构成的边,而规约子图中的关联关系包括从起始图节点 到第一待查图节点所经过的所有待查图节点和边。另外,上述预设的可用资源条件是用于 约束规约子图所占资源的大小的。
[0095] 继续参见图3所举的例子,计算机根据查询条件和预设的可用资源判断hgi、hg2、 CC3W及hg i、hg2下的cl 1、吨不满足上述查询条件,则将hg i、hg2、CC3、cli、吨W及该些第 二待查图节点对应的关联关系进行删除,从而生成规约子图,该规约子图可W参见图4所 示。该规约子图中包括满足查询条件的第一待查图节点cl。、clwW及该些第一待查图节 点与起始图节点之间的关联关系(该关联关系既包括hgm、CCi、CC,该S个待查图节点,也包 括该=个待查图节点与起始图节点、第一待查图节点构成的边),并且该规约子图所占的存 储资源不超过上述预设的可用资源条件。
[0096] 也就是说,计算机在过滤不满足查询条件的第二待查图节点W及该第二待查图节 点对应的关联关系时,是基于查询条件和预设的可用资源条件两方面共同考虑的。
[0097] S103 ;通过所述查询条件查询所述规约子图,W得到所述第一待查图节点。
[009引现有技术在捜索对应的图节点上的数据时,往往是通过采集样本,并将采集到的 样本静态存储至磁盘中,计算机接收到的所有的查询请求都是基于磁盘中存储的样本进行 查询的,其不仅造成计算机存储资源的浪费,另一方面,由于所有的查询请求都是基于磁盘 中同一个样本查询,查询精度也不高;但是,在本发明实施例中,采用的是根据查询条件对 图数据集合的图节点进行过滤的方法,在过滤过程中不会占用计算机的存储资源,并且所 生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低 了计算机的存储开销;另一方面,在捜索过程中,在根据某一个查询条件查询完成之后,计 算机会释放规约子图,当计算机下一时刻重新接收到的一个新的查询请求后,动态生成新 的规约子图,并基于该新的规约子图进行查询,因此,本发明实施例提供的方法,提高了计 算机捜索图数据的准确性。进一步地,本发明实施例提供的方法可W在任意资源限制下返 回查询精确的查询结果,克服了传统查询技术无法在任何资源限制下均返回查询结果的缺 陷。
[0099] 本发明实施例提供的图数据的捜索方法,根据查询请求中的查询条件和预设的可 用资源过滤图数据集合中不满足查询条件的第二待查图节点,获得规约子图,并根据该规 约子图获得所需要的第一待查图节点,即在本发明实施例采用查询条件对图数据集合的图 节点进行过滤W生成规约子图的方法,在过滤过程中不会占用计算机的存储资源,并且所 生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低 了计算机的存储开销;另一方面,本发明实施例基于不同的查询条件实时生成规约子图,并 根据实时生成的规约子图得到查询结果,提高了计算机捜索图数据的准确性;进一步地,本 发明实施例提供的方法可W在任意资源限制下返回查询精确的查询结果,克服了传统查询 技术无法在任何资源限制下均返回查询结果的缺陷。
[0100] 图5为本发明提供的图数据的捜索方法实施例二的流程示意图。在上述实施例的 基础上,本实施例设及的是计算机获取规约子图的具体过程。进一步地,上述S102具体包 括:
[0101] S201 ;根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节 点,W及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系。
[0102] 具体的,计算机根据查询条件生成的查询拓扑结构,可W是查询模式图的形式,该 查询拓扑结构中的每个查询节点与其它查询节点之间均具有查询拓扑。
[0103] 为了便于理解查询拓扑结构,此处W-个简单的例子来进行说明。参见图6所示 的查询拓扑结构,计算机根据上述图3所示的例子中的查询条件"找到所有认识michael所 在的徒步旅行俱乐部成员和LA自行车俱乐部成员的自行车爱好者",获知自身所要找的自 行车爱好者(即第一待查图节点)是HG与CC中的成员共同认识的人,且该个人属于自行 车爱好者的社交圈(CL)。因此,计算机会将Michael设置为起始查询节点(为了便于与图 数据集合中的michael区分,该里采用Michael,该Michael的实际含义是一个查询节点,该 查询节点的意义为要找到一个叫michael的人,michael指的是图数据集合中实际的图节 点,即起始查询节点Michael与起始图节点michael是相互匹配的,起始图节点michael就 是起始查询节点Michael所要查找的人);之后,计算机会将HG、CC W及化作为其他的查 询节点,即计算机要找的人必须是化中的人,且该个人必须是HG、CC中的成员共同认识的 人。故,计算机就此构建了查询拓扑结构,之后在查询过程中可W根据该查询拓扑结构中的 查询节点之间的查询拓扑关系进行查询,例如计算机只需要找HG、CC W及化中的人,不再 需要查询其他的社交圈。查询拓扑结构的构建,减少了计算的查询时间,节省了计算机的时 间处理资源。
[0104] S202;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所 述第一待查图节点的第一访问代价w及所述可用资源条件,过滤所述图数据集合中超过所 述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,W得到所述规 约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
[0105] 具体的,计算机为了 W最少的资源获得第一待查图节点,会预设一个访问该第一 待查图节点的第一访问代价,即计算机从起始图节点查找到第一待查图节点时的访问代价 不得超过该第一访问代价。
[0106] 因此,计算机根据上述生成的查询拓扑结构中查询节点之间的查询拓扑关系和上 述访问第一待查图节点的第一访问代价W及预设的可用资源条件,过滤掉图数据集合中超 过该第一访问代价的第二待查图节点和包含第二待查图节点的关联关系,W得到规约子 图。
[0107] 例如,继续参见图3所举的例子,计算机判断从起始图节点经过hgi或hg2或CC3无 法查找到既认识michael所在的HG的成员又认识LA自行车俱乐部的成员的自行车爱好者 (该里的"既认识michael所在的HG的成员又认识LA自行车俱乐部的成员的自行车爱好 者"即就是计算机所要查找的第一待查图节点),则其访问代价可W看作是无穷大,因而也 就超过了第一访问代价,故计算机会将hgi、hg2、CC3、cli、cl2(hgi、hg2、CC3、cli、吨即为第 二待查图节点)w及包含该些第二待查图节点的关联关系过滤掉,从而生成规约子图,该 规约子图可W参见上述图4所示。该规约子图中包括第一待查图节点cl。、clwW及该些 第一待查图节点与起始图节点之间的关联关系(该关联关系既包括hgm、CCi、CC2该S个待 查图节点,也包括该=个待查图节点与起始图节点、第一待查图节点构成的边,即第一待查 图节点与起始图节点之间的关联关系包括起始图节点到第一待查图节点的路径上的待查 图节点和构成该路径的边),并且该规约子图所占的存储资源没有超过上述预设的可用资 源条件。
[0108] 本发明实施例提供的图数据的捜索方法,采用查询拓扑结构和预设的第一访问代 价W及可用资源条件,过滤图数据集合中超过第一访问代价的第二待查图节点和包含第二 待查图节点的关联关系,从而得到规约子图,其在过滤过程中不会占用计算机的存储资源, 并且所生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因 此降低了计算机的存储开销;另一方面,本发明实施例基于不同的查询条件实时生成规约 子图,并根据实时生成的规约子图得到查询结果,提高了计算机捜索图数据的准确性;进一 步地,本发明实施例提供的方法可W在任意资源限制下返回查询精确的查询结果,克服了 传统查询技术无法在任何资源限制下均返回查询结果的缺陷。
[0109] 图7为本发明提供的图数据的捜索方法实施例=的流程示意图。在上述实施例的 基础上,本实施例设及的是计算机根据查询拓扑结构和第一访问代价W及预设的可用资源 条件确定规约子图的具体实现过程。进一步地,如图7所示,上述S202具体包括:
[0110] S301 ;读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,其中所 述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点, 所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所 述起始图节点与所述起始查询节点相匹配。
[0111] 具体的,计算机在根据查询生成查询拓扑结构之后,根据该查询拓扑结构读取存 储空间中存储的查询节点和与该查询节点匹配的图节点。该里的查询节点包括起始查询节 点,可选的,还可w包括其他的与起始查询节点具有查询拓扑,并且可w协助计算机捜索到 第一待查图节点的查询节点。存储空间中还可W包括与起始查询节点匹配的起始图节点, 而且还可W包括可能写入规约子图中的待查图节点,也就是说计算机存储空间存储的该些 图节点可W为经过计算机过滤筛选后剩余的待查图节点,计算机通过该些待查图节点可W 捜索到第一待查图节点。
[0112] 需要说明的是,当存储空间存储的图节点为待查图节点时,该些待查图节点实际 上是通过下述S303的步骤添加至存储空间的,也就是说该S301实际上与下述S302和S303 构成了一个循环执行过程,具体过程参见下述介绍。
[0113] S302 ;判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包 括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子 图所占的资源不超过所述可用资源条件。
[0114] 具体的,当计算机判断规约子图中并不包括上述从存储空间读取的图节点,则将 上述所读取的图节点添加至规约子图中,并且,在将上述读取的图节点添加至规约子图后, 计算机进一步判断该规约子图所占的内存资源是否超过了上述可用资源的条件。
[0115] 需要说明的是,该里的可用资源条件可W为资源大小的阔值,还可W为资源大小 的范围值,还可W为资源大小的限值。另外,规约子图所占的资源指的是所占计算机内存的 资源。
[0116] S303;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取 的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第 二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关 系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列 中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述 访问序列中的待查图节点的数目。
[0117] 具体的,当计算机判断已经添加了上述读取的图节点的规约子图所占的资源并未 超过上述可用资源条件,计算机进一步根据上述所确定的查询拓扑结构中的查询节点之间 的查询拓扑关系计算与上述读取的图节点相邻的待查图节点(W下简称邻居待查图节点) 的访问代价,即计算该邻居待查图节点到第一待查访问图节点的访问代价。
[0118] 之后,计算机过滤掉上述访问代价超过第一访问代价的第二待查图节点,该第二 待查图节点即就是从上述邻居待查图节点中筛选的访问代价超过第一访问代价的待查图 节点,并且,计算机还过滤掉包含该第二待查图节点的关联关系。
[0119] 当计算机将第二待查图节点和包含第二待查图节点的关联关系过滤掉之后,计算 机可W根据预设的动态规约参数从剩余的访问代价不超过第一访问代价的邻居待查图节 点中确定存储至所述存储空间的访问序列,该动态规约参数决定了访问序列中图节点的数 目。需要说明的是,访问序列中的图节点均为访问代价不超过第一访问代价的邻居待查图 节点。
[0120] 当计算机确定了可W存储至存储空间的访问序列之后,将该访问序列存储至存储 空间,即将该访问序列中的图节点存储至存储空间,从而使得计算机可W再次执行S301,进 而确定添加至规约子图中的图节点,从而得到规约子图。
[0121] 本发明实施例提供的图数据的捜索方法,通过根据查询拓扑结构、预设的第一访 问代价和可用资源条件,从图数据集合中确定可w添加至规约子图的图节点,从而得到规 约子图,进而通过规约子图捜索到第一待查图节点。本发明实施例提供的方法,由于规约子 图缓存在计算机内存中,不需通过10操作就可W从内存中查询规约子图从而得到结果,其 有效提高了计算机捜索图数据的效率;并且,在一次捜索完成后,计算机会释放之前生成的 规约子图,待下次捜索时,计算机重新根据新的查询请求捜索图数据,即本发明实施例中计 算机是根据查询条件实时生成规约子图,并实时根据规约子图获得精确的捜索结果,故本 发明实施例提供的方法提高了图数据的捜索精度。
[0122] 图8为本发明提供的图数据的捜索方法实施例四的流程示意图。在上述实施例的 基础上,本实施例设及的是计算机根据查询拓扑结构和第一访问代价W及预设的可用资源 确定规约子图的另一具体实现过程。进一步地,如图8所示,上述S202具体包括:
[0123] S401 ;将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的 数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设 值。
[0124] 具体的,计算机在生成查询拓扑结构之后,可W将规约子图、用于缓存查询节点和 与查询节点匹配的图节点的存储空间、W及动态规约参数进行初始化,即将规约子图中的 图节点数目设置为零,将存储空间存储的查询节点的数目和与查询节点匹配的图节点的数 目设置为零,并将动态规约参数设为第一预设值。因此,此时的规约子图为空,存储空间为 空,上述第一预设值为控制下述访问序列中的待查图节点数目的参数,该参数可W使得计 算机W最少的资源捜索到第一待查图节点。
[0125] S402;将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储 空间;所述起始图节点与所述起始查询节点相匹配。
[0126] 需要说明的是,起始查询节点与起始图节点构成点对(起始查询节点,起始图节 点),计算机将该点对存储至存储空间。可选的,在本实施例中,该存储空间可W为一堆找结 构的存储空间,也可W为存储模块,只要该存储空间具有"先入后出"的特点即可,即计算机 从该存储空间获取数据时是依照"先入后出"原则进行的。
[0127] S403;读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并 将所读取的查询节点和与所述查询节点匹配的图节点从所述存储空间删除。
[0128] 具体的,继上述S402,因为上述存储空间中只包括了起始查询图节点W及起始图 节点构成的点对,因此,此时S403中计算机读取的查询节点应该是起始查询节点,读取的 图节点即为起始图节点。但是,当上述存储空间中还包括了其他的查询节点和图节点时,则 S403中计算机读取的查询节点和图节点就要依实际情况而定。计算机从存储空间读取图节 点的过程可W参见后面实施例中的示例。
[0129] S404 ;判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节 点包括所述起始图节点或所述待查图节点。若是,则执行S405 ;若否,则执行S406。
[0130] S405 ;标记规约子图未发生变化,执行S407。
[0131] S406;将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的 资源是否超过可用资源条件;若是,则执行S411 ;若否,则执行S407。
[0132] 具体的,当计算机将所读取的图节点添加至规约子图中后,为了防止规约子图所 占的存储资源超过可用资源条件,因此,计算机需要判断规约子图所占的资源是否超过可 用资源条件。
[0133] S407;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取 的图节点相邻的待查图节点的第二访问代价,并过滤所述访问代价超过所述第一访问代价 的第二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关 联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序 列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所 述访问序列中的待查图节点的数目。
[0134] 具体的,当计算机判断规约子图所占的资源未超过可用资源条件时,计算机根据 上述查询拓扑结构中的查询节点之间的查询拓扑关系计算S403中与所读取的图节点相邻 的待查图节点下与所读取的图节点相邻的待查图节点简称为邻居待查图节点)的访问 代价。计算机判断该邻居待查图节点的访问代价是否超过第一访问代价;若是,则该邻居 待查图节点即就是第二待查图节点,计算机将该第二待查图节点W及包含该第二待查图节 点的关联关系过滤掉;若否,则计算机将该邻居待查图节点添加至访问队列中(因为该图 节点有可能是第一待查图节点或者可W协助计算机查找到第一待查图节点的图节点);同 时,计算机还根据上述动态规约参数确定加入访问序列的点对数。其中,一个点对包括一个 查询节点和一个与该查询节点匹配的图节点。当计算机确定访问序列之后,将该访问序列 存储至上述存储空间中,即将该访问序列中的待查图节点存储至存储空间中。
[01巧]S408 ;判断所述存储空间是否为空;若是,则执行S409 ;若否,则执行S403,直至所 述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止,并在 确定所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零之 后,执行S409。
[0136] S409 ;判断所述规约子图是否发生变化;若是,则执行S410 ;若否,则执行S411。
[0137] S410;将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空 间,并将所述动态规约参数的值调整为第二预设值,之后,继续返回执行S403。
[0138] 具体的,当规约子图发生变化时,说明还存在其他的访问代价不超过第一访问代 价的邻居待查图节点未加入至规约子图中,即隐式的说明计算机捜索的范围过小。因此,该 里的调整动态规约参数可W是增大初始的动态规约参数,W使得加入访问队列的点对数增 多,进而扩大计算机的捜索范围,得到精确的结果。
[0139] S411 ;结束计算,确定所述规约子图。
[0140] 图9为本发明提供的图数据的捜索方法实施例五的流程示意图。在上述图3所示 实施例的基础上,本实施例设及的是计算机根据查询拓扑结构中的查询节点之间的查询拓 扑关系和第一访问代价W及预设的可用资源确定规约子图的另一具体实现过程。进一步 地,如图9所示,上述S202具体包括;
[0141] S501 ;将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的 数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设 值。
[0142] S502;将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储 空间;所述起始图节点与所述起始查询节点相匹配。
[0143] S503:;读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并 对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记。
[0144] S504 ;判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节 点包括所述起始图节点或所述待查图节点;若是,则执行S505 ;若否,则执行S506。
[0145] S505 ;标记规约子图未发生变化,执行S507。
[0146] S506;将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的 资源是否超过可用资源条件;若是,则执行S511 ;若否,则执行S507。
[0147] S507;根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取 的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第 二待查图节点W及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关 系,并根据所述动态规约参数和所述第一访问代价输出存储至所述存储空间的访问序列; 其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规 约参数用于控制所述访问序列中的待查图节点的数目。
[0148] 具体的,上述S501至S507具体过程可W参照上述图8所示的实施例四的内容,其 具体执行过程类似,在此不再寶述。
[0149] S508 ;判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查 询节点匹配的图节点;若是,则执行S503,直至所述存储空间存储的查询节点和与所述查 询节点匹配的图节点均打有标记为止,并在确定所述存储空间中存储的查询节点和与所述 查询节点匹配的图节点均打有标记之后,执行S509 ;若否,则执行S509。
[0150] 具体的,按照上述所述,计算机会从存储空间读取查询节点W及与该查询节点匹 配的图节点,并将所读取的查询节点W及与该查询节点匹配的图节点添加至规约子图中, 因此计算机会对存储空间中已添加至规约子图中的图节点W及与该图节点匹配的查询节 点打上标记。故,计算机需要判断存储空间中是否存在未打标记的查询节点和与所述未打 标记的查询节点匹配的图节点,即判断存储空间中是否还有未添加至规约子图的图节点。 若存储空间中存在未打标记的查询节点和与该未打标记的查询节点匹配的图节点,则计算 机返回执行上述S503,直至存储空间存储的查询节点和与该查询节点匹配的图节点均打有 标记为止。
[0151] S509 ;判断所述规约子图是否发生变化;若是,则执行S510 ;若否,则执行S511。
[0152] S510;将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空 间,并将所述动态规约参数的值调整为第二预设值,之后,继续返回执行S503。
[0153] 具体的,当规约子图发生变化时,说明还存在其他的访问代价不超过第一访问代 价的邻居待查图节点未加入至规约子图中,即隐式的说明计算机捜索的范围过小。因此,该 里的调整动态规约参数可W是增大初始的动态规约参数,W使得加入访问队列的点对数增 多,进而扩大计算机的捜索范围,得到精确的结果。
[0154] S511 ;结束计算,W得到所述规约子图。
[0巧5] 上述图8所示实施例中的S401-S411和图9所示实施例中的S501-S511均是计算 机根据查询拓扑结构和第一访问代价W及预设的可用资源条件确定规约子图的具体实现 过程,为了便于理解图8和图9所示的流程图,此处继续W上述图3所示出的例子进行更具 体的说明。由于图8和图9过程类似,因此,此处仅将图8所示的流程图中的循环操作W具 体的例子示出,具体参见下述A-I九大步骤。
[0156] 步骤 A;
[0157] (1)将所述规约子图中的图节点数目设置为零(下述规约子图均已耐来表示), 将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零(下 述存储空间均WS表示),并将用于控制访问序列中图节点数目的动态规约参数设为第一 预设值之后,将起始查询节点和起始图节点存储至S,即将(Michael, michael)存储至S ;
[0158] (2)获取 S 中缓存的(Michael, michael);
[0159] 做判断起始图节点michael未加入Gq,则更新Gq,即将michael加入Gq;
[0160] (4)动态计算查询节点Mi chae 1和图节点mi chae 1的邻居待查图节点的访问代 价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节 点中确定访问序列。即,根据查询拓扑结构中查询节点Michael的拓扑结构(该拓扑结构 即Michael的邻居查询节点为HG和CC),查询图数据集合中起始图节点michael的邻居待 查图节点(该邻居待查图节点为hgi、hg2、hgm、cci、cc2、cc3),并计算michael的邻居待查图 节点的访问代价,确定hgm、CCi、CC,各自的访问代价不超过预设的第一访问代价,因此计算 机结合上述动态规约参数得到访问序列(HG,hgm) (CC,cci) (CC,CC2),并将该几个点对依次 存储至S,即此时S中的具体内容可W参见表1所示。上述访问序列的点对中的邻居待查图 节点均是能够精确找到第一待查图节点的节点。
[0161] 表 1
[0162]

【权利要求】
1. 一种图数据的搜索方法,其特征在于,包括: 获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用 于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起 始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以 及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系; 根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条 件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约 子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与 所述第一待查图节点之间的关联关系; 通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。
2. 根据权利要求1所述的方法,其特征在于,所述根据所述查询条件和预设的可用资 源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待 查图节点对应的关联关系,以得到规约子图,包括: 根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节点,以及所 述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系; 根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待 查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过 所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述 规约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
3. 根据权利要求2所述的方法,其特征在于,所述根据所述查询拓扑结构中的查询节 点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用 资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和 包含所述第二待查图节点的关联关系,以得到所述规约子图,包括: 读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,其中所述存储空间 中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节 点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节 点与所述起始查询节点相匹配; 判断所述规约子图中是否包括所述读取的图节点; 若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约 子图中,并确定所述规约子图所占的资源不超过所述可用资源条件; 根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点 相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图 节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据 预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查 图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列 中的待查图节点的数目。
4. 根据权利要求2所述的方法,其特征在于,所述根据所述查询拓扑结构中的查询节 点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用 资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和 包含所述第二待查图节点的关联关系,以得到所述规约子图,包括: 步骤A :将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数 目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值; 步骤B :将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空 间;所述起始图节点与所述起始查询节点相匹配; 步骤C :读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点; 步骤D :判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包 括所述起始图节点或所述待查图节点; 步骤E:若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至 所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件; 步骤F:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的 图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二 待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系, 并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的 待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问 序列中的待查图节点的数目; 步骤G :判断所述存储空间是否为空; 步骤H :若所述存储空间非空,则返回执行步骤C,直至所述存储空间存储的查询节点 的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则判断所 述规约子图是否发生变化; 步骤I :若判断所述规约子图没有发生变化,则结束计算,以得到所述规约子图。
5.根据权利要求2所述的方法,其特征在于,所述根据所述查询拓扑结构中的查询节 点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用 资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和 包含所述第二待查图节点对应的关联关系,以得到所述规约子图,包括: 步骤A :将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数 目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值; 步骤B :将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空 间;所述起始图节点与所述起始查询节点相匹配; 步骤C:读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对 所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记; 步骤D :判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包 括所述起始图节点或所述待查图节点; 步骤E:若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至 所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件; 步骤F:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的 图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二 待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系, 并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的 待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问 序列中的待查图节点的数目; 步骤G:判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询 节点匹配的图节点; 步骤H:若所述存储空间中存在未打标记的查询节点和与所述未打标记的查询节点匹 配的图节点,则返回执行步骤C,直至所述存储空间存储的查询节点和与所述查询节点匹配 的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的图节 点均打有标记,则判断所述规约子图是否发生变化; 步骤I :若判断所述规约子图没有发生变化,则结束计算,以得到所述规约子图。
6. 根据权利要求4或5所述的方法,其特征在于,所述判断所述规约子图是否发生变化 之后,还包括: 若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点 重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值; 执行步骤C。
7. 根据权利要求4至6任一项所述的方法,其特征在于,所述方法还包括: 若所述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子 图。
8. -种图数据的搜索方法,其特征在于,包括: 获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所 述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数 据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所 述终止图节点以及所述多个待查图节点之间的关联关系; 根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所 述图数据集合的路标节点,并根据所述路标节点建立路标节点树;其中,所述路标节点树包 括具有层次关系的路标节点; 根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点。
9. 根据权利要求8所述的方法,其特征在于,根据所述查询条件搜索所述路标节点树, 以得到所述第一待查图节点,包括: 根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息; 根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略; 根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
10. -种图数据的搜索装置,其特征在于,包括: 获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件, 所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据 集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之 间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关 联关系; 处理模块,用于根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满 足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子 图,并通过所述查询条件查询所述规约子图,以得到所述第一待查图节点;其中,所述规约 子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与 所述第一待查图节点之间的关联关系。
11. 根据权利要求10所述的装置,其特征在于,所述处理模块,具体用于根据所述查询 条件生成查询拓扑结构,并根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预 设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集 合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的 关联关系,以得到所述规约子图;其中,所述查询拓扑结构包括多个查询节点,以及所述多 个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系,所述规约子图所占的 资源不超过所述可用资源条件。
12. 根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于读取存储空间 中存储的查询节点和与所述查询节点匹配的图节点,判断所述规约子图中是否包括所述读 取的图节点,若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至 所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,则进一步根 据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的 待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以 及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的 动态规约参数输出存储至所述存储空间的访问序列;其中,所述存储空间中存储有所述查 询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询 节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查 询节点相匹配;所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所 述动态规约参数用于控制所述访问序列中的待查图节点的数目。
13. 根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于将所述规约子 图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的 图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的 起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查 询节点和与所述查询节点匹配的图节点后,判断所述规约子图中是否包括所述读取的图节 点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所 述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件后,进一步根据 所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待 查图节点的访问代价,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包 含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规 约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间是否为空,若所 述存储空间非空,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图 节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为 零为止;若所述存储空间为空,则进一步判断所述规约子图是否发生变化,并在判断所述规 约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起 始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问 序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制 所述访问序列中的待查图节点的数目。
14. 根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于将所述规约 子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配 的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中 的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的 查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所 述查询节点匹配的图节点打标记后,进一步判断所述规约子图中是否包括所述读取的图节 点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所 述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,并进一步根据 所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待 查图节点的访问代价后,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及 包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态 规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间中是否存在未 打标记的查询节点和与所述未打标记的查询节点匹配的图节点;若所述存储空间存在未打 标记的查询节点和与所述未打标记的查询节点匹配的图节点,则继续读取所述存储空间中 存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点和与 所述查询节点匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查 询节点匹配的图节点均打有标记空,则进一步判断所述规约子图是否发生变化,并在判断 所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与 所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所 述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用 于控制所述访问序列中的待查图节点的数目。
15. 根据权利要求13或14所述的装置,其特征在于,所述处理模块,还用于若判断所述 规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述 存储空间,并将所述动态规约参数的值调整为第二预设值,并继续读取所述存储空间中存 储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目 和与所述查询节点匹配的图节点的数目为零为止或直至所述存储空间存储的查询节点和 与所述查询节点匹配的图节点均打有标记为止。
16. 根据权利要求13-15任一项所述的装置,其特征在于,所述处理模块,还用于若所 述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子图。
17. -种图数据的搜索装置,其特征在于,包括: 获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点 的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图 节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述 起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系; 处理模块,用于根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资 源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树,并根据所 述查询条件搜索所述路标节点树,以得到所述第一待查图节点;其中,所述路标节点树包括 具有层次关系的路标节点。
18.根据权利要求17所述的装置,其特征在于,所述处理模块,具体用于根据所述查询 条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点的辅助信息确 定用于获取所述第一待查图节点的路径策略后,根据所述路径策略搜索所述路标节点树, 以得到所述第一待查图节点。
【文档编号】G06F17/30GK104504003SQ201410751268
【公开日】2015年4月8日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】樊文飞, 王欣, 吴颖徽 申请人:北京航空航天大学, 华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1