CN104504003A - 图数据的搜索方法和装置 - Google Patents
图数据的搜索方法和装置 Download PDFInfo
- Publication number
- CN104504003A CN104504003A CN201410751268.9A CN201410751268A CN104504003A CN 104504003 A CN104504003 A CN 104504003A CN 201410751268 A CN201410751268 A CN 201410751268A CN 104504003 A CN104504003 A CN 104504003A
- Authority
- CN
- China
- Prior art keywords
- node
- graph
- checked
- stipulations
- query
- 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.)
- Granted
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
- G06F16/90335—Query processing
-
- 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/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本发明实施例提供一种图数据的搜索方法和装置,该方法包括:获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系;通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。本发明提供的方法,提高了搜索图数据的效率,并节省了计算机的存储资源和时间资源。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种图数据的搜索方法和装置。
背景技术
随着计算机技术的不断发展,计算机处理的数据量也逐渐增大,而当前的大数据时代也正是一个图数据繁荣发展的时代,这里的图数据是相互之间具有关联关系的数据。基于此,计算机往往需要进行全量大数据分析,通过大量的时间资源和计算机的存储资源消耗,得到精确的搜索结果。
为了避免传统搜索机制带来的资源消耗,现有技术中提出了一种数据采样查询(BlinkDB)技术,以特定的采样算法对原始图数据进行持续的采样,建立图数据样本并进行维护,进而获取相应的搜索结果。
但是,现有技术的数据采样查询(BlinkDB)技术中需要使用额外的存储开销以维护图数据样本,很大程度上对计算机的存储资源造成浪费。
发明内容
本发明实施例提供一种图数据的搜索方法和装置,在有效搜索图数据的同时,避免搜索图数据时造成的资源浪费。
第一方面,本发明实施例提供一种图数据的搜索方法,包括:
获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系;
根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系;
通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。
结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点对应的关联关系,以得到规约子图,包括:
根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节点,以及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系;
根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图,包括:
读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,其中所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查询节点相匹配;
判断所述规约子图中是否包括所述读取的图节点;
若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图,包括:
步骤A:将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值;
步骤B:将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间;所述起始图节点与所述起始查询节点相匹配;
步骤C:读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点;
步骤D:判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包括所述起始图节点或所述待查图节点;
步骤E:若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
步骤F:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目;
步骤G:判断所述存储空间是否为空;
步骤H:若所述存储空间非空,则返回执行步骤C,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则判断所述规约子图是否发生变化;
步骤I:若判断所述规约子图没有发生变化,则结束计算,以得到所述规约子图。
结合第一方面的第一种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点对应的关联关系,以得到所述规约子图,包括:
步骤A:将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值;
步骤B:将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间;所述起始图节点与所述起始查询节点相匹配;
步骤C:读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记;
步骤D:判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包括所述起始图节点或所述待查图节点;
步骤E:若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件;
步骤F:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目;
步骤G:判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点;
步骤H:若所述存储空间中存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点,则返回执行步骤C,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记,则判断所述规约子图是否发生变化;
步骤I:若判断所述规约子图没有发生变化,则结束计算,以得到所述规约子图。
结合第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,所述判断所述规约子图是否发生变化之后,还包括:
若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值;
执行步骤C。
结合第一方面的第三种可能的实施方式至第一方面的第五种可能的实施方式中的任一项,在第一方面的第六种可能的实施方式中,所述方法还包括:
若所述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子图。
第二方面,本发明实施例提供一种图数据的搜索方法,包括:
获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系;
根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树;其中,所述路标节点树包括具有层次关系的路标节点;
根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点。
结合第二方面,在第二方面的第一种可能的实施方式中,根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点,包括:
根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息;
根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略;
根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
本发明实施例提供的图数据的搜索方法和装置中,根据查询请求中的查询条件和预设的可用资源条件过滤图数据集合中不满足查询条件的第二待查图节点,以得到规约子图,通过所述查询条件查询所述规约子图,以得到所需要的第一待查图节点,可见本发明实施例可以基于查询条件实时生成对应的规约子图,并根据实时生成的规约子图得到查询结果,提高了计算机搜索图数据的准确性,而且在本发明实施例采用查询条件对图数据集合的图节点进行过滤以生成规约子图的过滤过程中不会占用计算机的存储资源,并且所生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低了计算机的存储开销;进一步地,本发明实施例提供的方法中根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图,通过所述查询条件查询所述规约子图,以得到所需要的第一待查图节点,可见本发明实施例可以支持在不同的资源限制下得到较为精确的查询结果,从而克服了传统查询技术无法在不同资源限制下均能返回查询结果的缺陷。
第三方面,本发明提供一种图数据的搜索装置,包括:
获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系;
处理模块,用于根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图,并通过所述查询条件查询所述规约子图,以得到所述第一待查图节点;其中,所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系
结合第三方面,在第三方面的第一种可能的实施方式中,所述处理模块,具体用于根据所述查询条件生成查询拓扑结构,并根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图;其中,所述查询拓扑结构包括多个查询节点,以及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系,所述规约子图所占的资源不超过所述可用资源条件。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述处理模块,具体用于读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,判断所述规约子图中是否包括所述读取的图节点,若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,则进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查询节点相匹配;所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
结合第三方面的第一种可能的实施方式,在第三方面的第三种可能的实施方式中,所述处理模块,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点后,判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件后,进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间是否为空,若所述存储空间非空,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
结合第三方面的第一种可能的实施方式,在第三方面的第四种可能的实施方式中,所述处理模块,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记后,进一步判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,并进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价后,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点;若所述存储空间存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
结合第三方面的第三种可能的实施方式或第三方面的第四种可能的实施方式,在第三方面的第五种可能的实施方式中,所述处理模块,还用于若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值,并继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止或直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止。
结合第三方面的第三种可能的实施方式至第三方面的第五种可能的实施方式中的任一项,在第三方面的第六种可能的实施方式中,所述处理模块,还用于若所述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子图。
第四方面,本发明实施例提供一种图数据的搜索装置,包括:
获取模块,用于获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系;
处理模块,用于根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树,并根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点;其中,所述路标节点树包括具有层次关系的路标节点。
结合第四方面,在第四方面的第一种可能的实施方式中,所述处理模块,具体用于根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略后,根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
本发明实施例提供的图数据的搜索方法和装置,通过根据确定图数据集合中图节点的中间度核心性和预设的可用资源条件确定路标节点,并建立路标节点树,然后根据查询条件搜索该路标节点树确定满足该查询条件的第一待查图节点。由于在搜索第一待查图节点的过程中采用了路标节点树,使得搜索第一待查图节点所经过的路径和图节点均为直接有效的路径和图节点,避免了计算机在获取第一待查图节点时的无效搜索,节省了计算机的时间资源,提高了搜索效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的分布式计算系统结构示意图;
图2为本发明提供的图数据的搜索方法实施例一的流程示意图;
图3为本发明提供的图数据集合示意图一;
图4为本发明提供的规约子图示意图;
图5为本发明提供的图数据的搜索方法实施例二的流程示意图;
图6为本发明提供的查询拓扑结构示意图;
图7为本发明提供的图数据的搜索方法实施例三的流程示意图;
图8为本发明提供的图数据的搜索方法实施例四的流程示意图;
图9为本发明提供的图数据的搜索方法实施例五的流程示意图;
图10为本发明提供的图数据的搜索方法实施例六的流程示意图;
图11为本发明提供的图数据集合示意图二;
图12为本发明提供的路标节点树示意图;
图13为本发明提供的图数据的搜索方法实施例七的流程示意图;
图14为本发明实施例提供的图数据的搜索装置实施例一的结构示意图;
图15为本发明实施例提供的图数据的搜索装置实施例二的结构示意图;
图16为本发明实施例提供的图数据的搜索设备实施例一的结构示意图;
图17为本发明实施例提供的图数据的搜索设备实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例适用于搜索大规模图数据的场景,其具体适用于应用于分布式计算系统中的计算节点进行图数据搜索的场景。该分布式计算系统包括至少一个计算节点,该计算节点例如可以是计算机,也可以是计算机中的服务器,还可以是面向用户的通信设备。该分布式计算系统可以参见图1所示的系统架构图,可选的,中心节点为接收用户查询命令的计算节点,该中心节点可以将用户输入的查询命令拆分成不同的查询请求,并将所拆分的查询请求发送给对应的计算节点,从而使得分布式计算系统中的其他计算节点可以根据中心节点拆分的查询请求搜索数据。当然,中心节点所拆分的查询请求中也可以包括自己对应的查询请求,即中心节点也可以根据自身对应的查询请求搜索数据。可选的,下述实施例的技术方案均以计算机作为执行主体来介绍。
图2为本发明提供的图数据的搜索方法实施例一的流程示意图。如图2所示,该方法包括:
S101:获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系。
具体的,计算机获取用户的查询请求。可选的,该查询请求可以是用户配置给计算机的,还可以是用户通过其他设备发送给计算机的,例如通过图1所示的中心节点发送给该计算机的。该查询请求中可以包括携带起始图节点的查询条件,并且该查询请求用于查询图数据集合与该查询条件匹配的第一待查图节点。需要说明的是,图数据集合中所包括的数据可以以图节点的形式存储,故图数据集合中可以包括起始图节点、多个待查图节点以及起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系。该关联关系在图数据集合中指的是起始图节点与各个待查图节点构成的边。另外,图数据集合中的待查图节点为待搜索图节点或待查询图节点。
需要说明的是,图数据集合中起始图节点和待查图节点均是用数据来表征的,并且,起始图节点与所述待测图节点之间的关联关系也是用数据的关联关系来表征的;另外,上述第一待查图节点可以为一个,也可以为多个。
例如,参见图3所示的图数据集合,假设查询请求中的查询条件为“找到所有认识michael所在的徒步旅行俱乐部成员和LA自行车俱乐部成员的自行车爱好者”。图3中michael为图数据集合的起始图节点,除michael之外的所有图节点均为待查图节点。图3中的HG代表的是徒步旅行俱乐部,hg代表的是徒步旅行俱乐部的成员,即为图数据集合中的待查图节点,CC代表的是自行车俱乐部,cc代表的是自行车俱乐部的成员,其也是图数据集合中的待查图节点。另外,图3中所示的michael与其他待查图节点之间的连接线即为图数据集合中的起始图节点与待查图节点之间的关联关系,该关联关系即为起始图节点与各个待查图节点构成的边。
S102:根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系。
具体的,计算机获取到查询请求后,解析该查询请求并获知该查询请求中的查询条件,然后根据该查询条件和计算机预设的可用资源条件确定图数据集合中不满足该查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,并将这些不满足该查询条件的第二待查图节点和包含第二待查图节点的关联关系过滤掉,从而获得规约子图。该规约子图中包括起始图节点和与上述查询条件匹配的第一待查图节点以及起始图节点与该第一待查图节点之间的关联关系,可选的,该规约子图可以为图形模式,还可以为具有关联关系的映射集合的形式,还可以为其他的可以表征起始图节点与该第一待查图节点之间的关联关系的形式,只要该规约子图可以使得计算机快速的根据查询条件搜索到想要的结果即可。上述可用资源条件可以为资源大小的阈值或资源大小的范围值或资源大小的上限值等。上述计算机所过滤的不满足所述查询条件的第二待测图节点可以是一个或多个。
需要说明的是,本发明实施例涉及的“过滤”操作是指计算机从图数据集合中将不满足查询条件的第二待查图节点和第二待查图节点对应的关联关系进行筛选或忽略,从而将图数据集合中剩余的待查图节点生成规约子图,并且将所生成的规约子图动态缓存在内存中,待计算机根据该规约子图获取到第一待查图节点之后,将该规约子图进行释放。也就是说,计算机并不需要将该规约子图从内存写入磁盘,节省了计算机磁盘的存储开销;并且,计算机直接从内存中的规约子图中搜索得到第一待查节点,不用执行从磁盘到内存的IO操作,因此所花费的时间处理资源小,有效的提高了计算机搜索图数据的效率。
另外,上述图数据集合中所述的“起始图节点与所述待查图节点之间的关联关系”仅指的是图数据集合中所有图节点构成的边,而规约子图中的关联关系包括从起始图节点到第一待查图节点所经过的所有待查图节点和边。另外,上述预设的可用资源条件是用于约束规约子图所占资源的大小的。
继续参见图3所举的例子,计算机根据查询条件和预设的可用资源判断hg1、hg2、cc3以及hg1、hg2下的cl1、cl2不满足上述查询条件,则将hg1、hg2、cc3、cl1、cl2以及这些第二待查图节点对应的关联关系进行删除,从而生成规约子图,该规约子图可以参见图4所示。该规约子图中包括满足查询条件的第一待查图节点cln、cln-1以及这些第一待查图节点与起始图节点之间的关联关系(该关联关系既包括hgm、cc1、cc2这三个待查图节点,也包括这三个待查图节点与起始图节点、第一待查图节点构成的边),并且该规约子图所占的存储资源不超过上述预设的可用资源条件。
也就是说,计算机在过滤不满足查询条件的第二待查图节点以及该第二待查图节点对应的关联关系时,是基于查询条件和预设的可用资源条件两方面共同考虑的。
S103:通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。
现有技术在搜索对应的图节点上的数据时,往往是通过采集样本,并将采集到的样本静态存储至磁盘中,计算机接收到的所有的查询请求都是基于磁盘中存储的样本进行查询的,其不仅造成计算机存储资源的浪费,另一方面,由于所有的查询请求都是基于磁盘中同一个样本查询,查询精度也不高;但是,在本发明实施例中,采用的是根据查询条件对图数据集合的图节点进行过滤的方法,在过滤过程中不会占用计算机的存储资源,并且所生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低了计算机的存储开销;另一方面,在搜索过程中,在根据某一个查询条件查询完成之后,计算机会释放规约子图,当计算机下一时刻重新接收到的一个新的查询请求后,动态生成新的规约子图,并基于该新的规约子图进行查询,因此,本发明实施例提供的方法,提高了计算机搜索图数据的准确性。进一步地,本发明实施例提供的方法可以在任意资源限制下返回查询精确的查询结果,克服了传统查询技术无法在任何资源限制下均返回查询结果的缺陷。
本发明实施例提供的图数据的搜索方法,根据查询请求中的查询条件和预设的可用资源过滤图数据集合中不满足查询条件的第二待查图节点,获得规约子图,并根据该规约子图获得所需要的第一待查图节点,即在本发明实施例采用查询条件对图数据集合的图节点进行过滤以生成规约子图的方法,在过滤过程中不会占用计算机的存储资源,并且所生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低了计算机的存储开销;另一方面,本发明实施例基于不同的查询条件实时生成规约子图,并根据实时生成的规约子图得到查询结果,提高了计算机搜索图数据的准确性;进一步地,本发明实施例提供的方法可以在任意资源限制下返回查询精确的查询结果,克服了传统查询技术无法在任何资源限制下均返回查询结果的缺陷。
图5为本发明提供的图数据的搜索方法实施例二的流程示意图。在上述实施例的基础上,本实施例涉及的是计算机获取规约子图的具体过程。进一步地,上述S102具体包括:
S201:根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节点,以及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系。
具体的,计算机根据查询条件生成的查询拓扑结构,可以是查询模式图的形式,该查询拓扑结构中的每个查询节点与其它查询节点之间均具有查询拓扑。
为了便于理解查询拓扑结构,此处以一个简单的例子来进行说明。参见图6所示的查询拓扑结构,计算机根据上述图3所示的例子中的查询条件“找到所有认识michael所在的徒步旅行俱乐部成员和LA自行车俱乐部成员的自行车爱好者”,获知自身所要找的自行车爱好者(即第一待查图节点)是HG与CC中的成员共同认识的人,且这个人属于自行车爱好者的社交圈(CL)。因此,计算机会将Michael设置为起始查询节点(为了便于与图数据集合中的michael区分,这里采用Michael,该Michael的实际含义是一个查询节点,该查询节点的意义为要找到一个叫michael的人,michael指的是图数据集合中实际的图节点,即起始查询节点Michael与起始图节点michael是相互匹配的,起始图节点michael就是起始查询节点Michael所要查找的人);之后,计算机会将HG、CC以及CL作为其他的查询节点,即计算机要找的人必须是CL中的人,且这个人必须是HG、CC中的成员共同认识的人。故,计算机就此构建了查询拓扑结构,之后在查询过程中可以根据该查询拓扑结构中的查询节点之间的查询拓扑关系进行查询,例如计算机只需要找HG、CC以及CL中的人,不再需要查询其他的社交圈。查询拓扑结构的构建,减少了计算的查询时间,节省了计算机的时间处理资源。
S202:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
具体的,计算机为了以最少的资源获得第一待查图节点,会预设一个访问该第一待查图节点的第一访问代价,即计算机从起始图节点查找到第一待查图节点时的访问代价不得超过该第一访问代价。
因此,计算机根据上述生成的查询拓扑结构中查询节点之间的查询拓扑关系和上述访问第一待查图节点的第一访问代价以及预设的可用资源条件,过滤掉图数据集合中超过该第一访问代价的第二待查图节点和包含第二待查图节点的关联关系,以得到规约子图。
例如,继续参见图3所举的例子,计算机判断从起始图节点经过hg1或hg2或cc3无法查找到既认识michael所在的HG的成员又认识LA自行车俱乐部的成员的自行车爱好者(这里的“既认识michael所在的HG的成员又认识LA自行车俱乐部的成员的自行车爱好者”即就是计算机所要查找的第一待查图节点),则其访问代价可以看作是无穷大,因而也就超过了第一访问代价,故计算机会将hg1、hg2、cc3、cl1、cl2(hg1、hg2、cc3、cl1、cl2即为第二待查图节点)以及包含这些第二待查图节点的关联关系过滤掉,从而生成规约子图,该规约子图可以参见上述图4所示。该规约子图中包括第一待查图节点cln、cln-1以及这些第一待查图节点与起始图节点之间的关联关系(该关联关系既包括hgm、cc1、cc2这三个待查图节点,也包括这三个待查图节点与起始图节点、第一待查图节点构成的边,即第一待查图节点与起始图节点之间的关联关系包括起始图节点到第一待查图节点的路径上的待查图节点和构成该路径的边),并且该规约子图所占的存储资源没有超过上述预设的可用资源条件。
本发明实施例提供的图数据的搜索方法,采用查询拓扑结构和预设的第一访问代价以及可用资源条件,过滤图数据集合中超过第一访问代价的第二待查图节点和包含第二待查图节点的关联关系,从而得到规约子图,其在过滤过程中不会占用计算机的存储资源,并且所生成的规约子图是动态存储在内存中,其并不需要占用计算机的磁盘存储资源,因此降低了计算机的存储开销;另一方面,本发明实施例基于不同的查询条件实时生成规约子图,并根据实时生成的规约子图得到查询结果,提高了计算机搜索图数据的准确性;进一步地,本发明实施例提供的方法可以在任意资源限制下返回查询精确的查询结果,克服了传统查询技术无法在任何资源限制下均返回查询结果的缺陷。
图7为本发明提供的图数据的搜索方法实施例三的流程示意图。在上述实施例的基础上,本实施例涉及的是计算机根据查询拓扑结构和第一访问代价以及预设的可用资源条件确定规约子图的具体实现过程。进一步地,如图7所示,上述S202具体包括:
S301:读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,其中所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查询节点相匹配。
具体的,计算机在根据查询生成查询拓扑结构之后,根据该查询拓扑结构读取存储空间中存储的查询节点和与该查询节点匹配的图节点。这里的查询节点包括起始查询节点,可选的,还可以包括其他的与起始查询节点具有查询拓扑,并且可以协助计算机搜索到第一待查图节点的查询节点。存储空间中还可以包括与起始查询节点匹配的起始图节点,而且还可以包括可能写入规约子图中的待查图节点,也就是说计算机存储空间存储的这些图节点可以为经过计算机过滤筛选后剩余的待查图节点,计算机通过这些待查图节点可以搜索到第一待查图节点。
需要说明的是,当存储空间存储的图节点为待查图节点时,这些待查图节点实际上是通过下述S303的步骤添加至存储空间的,也就是说该S301实际上与下述S302和S303构成了一个循环执行过程,具体过程参见下述介绍。
S302:判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件。
具体的,当计算机判断规约子图中并不包括上述从存储空间读取的图节点,则将上述所读取的图节点添加至规约子图中,并且,在将上述读取的图节点添加至规约子图后,计算机进一步判断该规约子图所占的内存资源是否超过了上述可用资源的条件。
需要说明的是,这里的可用资源条件可以为资源大小的阈值,还可以为资源大小的范围值,还可以为资源大小的限值。另外,规约子图所占的资源指的是所占计算机内存的资源。
S303:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
具体的,当计算机判断已经添加了上述读取的图节点的规约子图所占的资源并未超过上述可用资源条件,计算机进一步根据上述所确定的查询拓扑结构中的查询节点之间的查询拓扑关系计算与上述读取的图节点相邻的待查图节点(以下简称邻居待查图节点)的访问代价,即计算该邻居待查图节点到第一待查访问图节点的访问代价。
之后,计算机过滤掉上述访问代价超过第一访问代价的第二待查图节点,该第二待查图节点即就是从上述邻居待查图节点中筛选的访问代价超过第一访问代价的待查图节点,并且,计算机还过滤掉包含该第二待查图节点的关联关系。
当计算机将第二待查图节点和包含第二待查图节点的关联关系过滤掉之后,计算机可以根据预设的动态规约参数从剩余的访问代价不超过第一访问代价的邻居待查图节点中确定存储至所述存储空间的访问序列,该动态规约参数决定了访问序列中图节点的数目。需要说明的是,访问序列中的图节点均为访问代价不超过第一访问代价的邻居待查图节点。
当计算机确定了可以存储至存储空间的访问序列之后,将该访问序列存储至存储空间,即将该访问序列中的图节点存储至存储空间,从而使得计算机可以再次执行S301,进而确定添加至规约子图中的图节点,从而得到规约子图。
本发明实施例提供的图数据的搜索方法,通过根据查询拓扑结构、预设的第一访问代价和可用资源条件,从图数据集合中确定可以添加至规约子图的图节点,从而得到规约子图,进而通过规约子图搜索到第一待查图节点。本发明实施例提供的方法,由于规约子图缓存在计算机内存中,不需通过IO操作就可以从内存中查询规约子图从而得到结果,其有效提高了计算机搜索图数据的效率;并且,在一次搜索完成后,计算机会释放之前生成的规约子图,待下次搜索时,计算机重新根据新的查询请求搜索图数据,即本发明实施例中计算机是根据查询条件实时生成规约子图,并实时根据规约子图获得精确的搜索结果,故本发明实施例提供的方法提高了图数据的搜索精度。
图8为本发明提供的图数据的搜索方法实施例四的流程示意图。在上述实施例的基础上,本实施例涉及的是计算机根据查询拓扑结构和第一访问代价以及预设的可用资源确定规约子图的另一具体实现过程。进一步地,如图8所示,上述S202具体包括:
S401:将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值。
具体的,计算机在生成查询拓扑结构之后,可以将规约子图、用于缓存查询节点和与查询节点匹配的图节点的存储空间、以及动态规约参数进行初始化,即将规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值。因此,此时的规约子图为空,存储空间为空,上述第一预设值为控制下述访问序列中的待查图节点数目的参数,该参数可以使得计算机以最少的资源搜索到第一待查图节点。
S402:将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间;所述起始图节点与所述起始查询节点相匹配。
需要说明的是,起始查询节点与起始图节点构成点对(起始查询节点,起始图节点),计算机将该点对存储至存储空间。可选的,在本实施例中,该存储空间可以为一堆栈结构的存储空间,也可以为存储模块,只要该存储空间具有“先入后出”的特点即可,即计算机从该存储空间获取数据时是依照“先入后出”原则进行的。
S403:读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并将所读取的查询节点和与所述查询节点匹配的图节点从所述存储空间删除。
具体的,继上述S402,因为上述存储空间中只包括了起始查询图节点以及起始图节点构成的点对,因此,此时S403中计算机读取的查询节点应该是起始查询节点,读取的图节点即为起始图节点。但是,当上述存储空间中还包括了其他的查询节点和图节点时,则S403中计算机读取的查询节点和图节点就要依实际情况而定。计算机从存储空间读取图节点的过程可以参见后面实施例中的示例。
S404:判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包括所述起始图节点或所述待查图节点。若是,则执行S405;若否,则执行S406。
S405:标记规约子图未发生变化,执行S407。
S406:将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源是否超过可用资源条件;若是,则执行S411;若否,则执行S407。
具体的,当计算机将所读取的图节点添加至规约子图中后,为了防止规约子图所占的存储资源超过可用资源条件,因此,计算机需要判断规约子图所占的资源是否超过可用资源条件。
S407:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的第二访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
具体的,当计算机判断规约子图所占的资源未超过可用资源条件时,计算机根据上述查询拓扑结构中的查询节点之间的查询拓扑关系计算S403中与所读取的图节点相邻的待查图节点(以下与所读取的图节点相邻的待查图节点简称为邻居待查图节点)的访问代价。计算机判断该邻居待查图节点的访问代价是否超过第一访问代价;若是,则该邻居待查图节点即就是第二待查图节点,计算机将该第二待查图节点以及包含该第二待查图节点的关联关系过滤掉;若否,则计算机将该邻居待查图节点添加至访问队列中(因为该图节点有可能是第一待查图节点或者可以协助计算机查找到第一待查图节点的图节点);同时,计算机还根据上述动态规约参数确定加入访问序列的点对数。其中,一个点对包括一个查询节点和一个与该查询节点匹配的图节点。当计算机确定访问序列之后,将该访问序列存储至上述存储空间中,即将该访问序列中的待查图节点存储至存储空间中。
S408:判断所述存储空间是否为空;若是,则执行S409;若否,则执行S403,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止,并在确定所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零之后,执行S409。
S409:判断所述规约子图是否发生变化;若是,则执行S410;若否,则执行S411。
S410:将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值,之后,继续返回执行S403。
具体的,当规约子图发生变化时,说明还存在其他的访问代价不超过第一访问代价的邻居待查图节点未加入至规约子图中,即隐式的说明计算机搜索的范围过小。因此,这里的调整动态规约参数可以是增大初始的动态规约参数,以使得加入访问队列的点对数增多,进而扩大计算机的搜索范围,得到精确的结果。
S411:结束计算,确定所述规约子图。
图9为本发明提供的图数据的搜索方法实施例五的流程示意图。在上述图3所示实施例的基础上,本实施例涉及的是计算机根据查询拓扑结构中的查询节点之间的查询拓扑关系和第一访问代价以及预设的可用资源确定规约子图的另一具体实现过程。进一步地,如图9所示,上述S202具体包括:
S501:将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值。
S502:将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间;所述起始图节点与所述起始查询节点相匹配。
S503::读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记。
S504:判断所述规约子图中是否包括所述读取的图节点;其中,所述读取的图节点包括所述起始图节点或所述待查图节点;若是,则执行S505;若否,则执行S506。
S505:标记规约子图未发生变化,执行S507。
S506:将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源是否超过可用资源条件;若是,则执行S511;若否,则执行S507。
S507:根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数和所述第一访问代价输出存储至所述存储空间的访问序列;其中,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
具体的,上述S501至S507具体过程可以参照上述图8所示的实施例四的内容,其具体执行过程类似,在此不再赘述。
S508:判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点;若是,则执行S503,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止,并在确定所述存储空间中存储的查询节点和与所述查询节点匹配的图节点均打有标记之后,执行S509;若否,则执行S509。
具体的,按照上述所述,计算机会从存储空间读取查询节点以及与该查询节点匹配的图节点,并将所读取的查询节点以及与该查询节点匹配的图节点添加至规约子图中,因此计算机会对存储空间中已添加至规约子图中的图节点以及与该图节点匹配的查询节点打上标记。故,计算机需要判断存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点,即判断存储空间中是否还有未添加至规约子图的图节点。若存储空间中存在未打标记的查询节点和与该未打标记的查询节点匹配的图节点,则计算机返回执行上述S503,直至存储空间存储的查询节点和与该查询节点匹配的图节点均打有标记为止。
S509:判断所述规约子图是否发生变化;若是,则执行S510;若否,则执行S511。
S510:将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值,之后,继续返回执行S503。
具体的,当规约子图发生变化时,说明还存在其他的访问代价不超过第一访问代价的邻居待查图节点未加入至规约子图中,即隐式的说明计算机搜索的范围过小。因此,这里的调整动态规约参数可以是增大初始的动态规约参数,以使得加入访问队列的点对数增多,进而扩大计算机的搜索范围,得到精确的结果。
S511:结束计算,以得到所述规约子图。
上述图8所示实施例中的S401-S411和图9所示实施例中的S501-S511均是计算机根据查询拓扑结构和第一访问代价以及预设的可用资源条件确定规约子图的具体实现过程,为了便于理解图8和图9所示的流程图,此处继续以上述图3所示出的例子进行更具体的说明。由于图8和图9过程类似,因此,此处仅将图8所示的流程图中的循环操作以具体的例子示出,具体参见下述A-I九大步骤。
步骤A:
(1)将所述规约子图中的图节点数目设置为零(下述规约子图均已GQ来表示),将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零(下述存储空间均以S表示),并将用于控制访问序列中图节点数目的动态规约参数设为第一预设值之后,将起始查询节点和起始图节点存储至S,即将(Michael,michael)存储至S;
(2)获取S中缓存的(Michael,michael);
(3)判断起始图节点michael未加入GQ,则更新GQ,即将michael加入GQ;
(4)动态计算查询节点Michael和图节点michael的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中查询节点Michael的拓扑结构(该拓扑结构即Michael的邻居查询节点为HG和CC),查询图数据集合中起始图节点michael的邻居待查图节点(该邻居待查图节点为hg1、hg2、hgm、cc1、cc2、cc3),并计算michael的邻居待查图节点的访问代价,确定hgm、cc1、cc2各自的访问代价不超过预设的第一访问代价,因此计算机结合上述动态规约参数得到访问序列(HG,hgm)(CC,cc1)(CC,cc2),并将这几个点对依次存储至S,即此时S中的具体内容可以参见表1所示。上述访问序列的点对中的邻居待查图节点均是能够精确找到第一待查图节点的节点。
表1
(5)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael。
步骤B:继上述步骤A的第(5)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(HG,hgm);
(2)判断hgm未加入GQ,则更新GQ,即将hgm加入GQ;
(3)动态计算查询节点HG和图节点hgm的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点HG的拓扑结构(该拓扑结构即HG的邻居查询节点为CL),查询图数据中图节点hgm的邻居待查图节点(该邻居待查图节点为cln、cln-1),并计算hgm的邻居待查图节点的访问代价不超过预设的第一访问代价,因此计算机结合上述动态规约参数得到访问序列(CL,cln)(CL,cln-1),并将这两个点对存储至S,即此时S中的具体内容可以参见表2所示。
表2
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael和hgm。
步骤C:继上述步骤B的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CL,cln-1);
(2)判断cln-1未加入GQ,则更新GQ,即将cln-1加入GQ;
(3)动态计算查询节点CL和图节点cln-1的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CL的拓扑结构(CL的邻居查询节点为空),查询图数据中图节点cln-1的邻居待查图节点。由于cln-1并没有邻居待查图节点,因此计算机确定访问序列为空,则此时S中的具体内容可以参见表3所示。
表3
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm和cln-1。
步骤D:继上述步骤C的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CL,cln);
(2)判断cln未加入GQ,则更新GQ,即将cln加入GQ;
(3)动态计算查询节点CL和图节点cln的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CL的拓扑结构(CL的邻居查询节点为空),查询图数据中图节点cln的邻居待查图节点,由于cln并没有邻居待查图节点,因此计算机确定访问序列为空,则此时S中的具体内容可以参见表4所示。
表4
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm、cln-1和cln。
步骤E:继上述步骤D的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CC,cc1);
(2)判断cc1未加入GQ,则更新GQ,即将cc1加入GQ;
(3)动态计算查询节点CC和图节点cc1的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CC的拓扑结构(该拓扑结构即CC的邻居查询节点为CL),查询图数据集合中图节点cc1的邻居待查图节点(该邻居待查图节点为cln、cln-1),并计算cc1的邻居待查图节点的访问代价不超过预设的第一访问代价,因此计算机结合上述动态规约参数得到访问序列(CL,cln)(CL,cln-1),并将这两个点对存储至S,则此时S中的具体内容可以参见表5所示。
表5
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm、cln-1、cln、和cc1。
步骤F:继上述步骤E的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CL,cln-1);
(2)判断cln-1已加入GQ,则标记GQ未发生变化;
(3)动态计算查询节点CL和图节点cln-1的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CL的拓扑结构,查询图数据集合中图节点cln-1的邻居待查图节点,由于cln-1并没有邻居待查图节点,因此计算机确定访问序列为空,则此时S中的具体内容可以参见表6所示。
表6
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm、cln-1、cln、和cc1。
步骤G:继上述步骤F的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CL,cln);
(2)判断cln已加入GQ,则标记GQ未发生变化;
(3)动态计算查询节点CL和图节点cln的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CL的拓扑结构(CL的邻居查询节点为空),查询图数据集合中图节点cln的邻居图节点。由于cln并没有邻居待查图节点,因此计算机确定访问序列为空,则此时S中的具体内容可以参见表7所示。
表7
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm、cln-1、cln、和cc1。
步骤H:继上述步骤G的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CC,cc2);
(2)判断cc2未加入GQ,则更新GQ,即将cc2加入GQ;
(3)动态计算查询节点CC和图节点cc2的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CC的拓扑结构(该拓扑结构即CC的邻居查询节点为CL),查询图数据集合中图节点cc2的邻居待查图节点(该邻居待查图节点为cln),并计算cc2的邻居待查图节点的访问代价不超过预设的第一访问代价,因此计算机结合上述动态规约参数得到访问序列(CL,cln),并将这个点对存储至S,则此时S中的具体内容可以参见表8所示。
表8
(4)故,计算机判断S不为空,则计算机继续获取S中的待查图节点;此时GQ中包括michael、hgm、cln-1、cln、cc1和cc2。
步骤I:继上述步骤H的第(4)步之后,计算机继续执行下述过程:
(1)获取S中缓存的(CL,cln);
(2)判断cln已加入GQ,则标记GQ未发生变化;
(3)动态计算查询节点CL和图节点cln的邻居待查图节点的访问代价,并根据第一访问代价过滤掉第二待查图节点,并根据动态规约参数从剩余的待查图节点中确定访问序列。即,根据查询拓扑结构中的查询节点CL的拓扑结构(CL的邻居查询节点为空),查询图数据中图节点cln的邻居待查图节点,由于cln并没有邻居待查图节点,因此计算机确定访问序列为空,则此时S为空。
(4)故,计算机判断S为空,此时GQ中包括michael、hgm、cln-1、cln、cc1和cc2。
(5)判断GQ是否有变化,由上述步骤H和步骤I可知,GQ并没有发生变化,则终止计算,确定GQ包括michael、hgm、cln-1、cln、cc1和cc2;其中,michael为规约子图GQ中的起始图节点,cln-1、cln为规约子图GQ中的第一待查图节点,hgm、cc1和cc2属于规约子图GQ中起始图节点与第一待查图节点的关联关系上的图节点。
(6)计算机根据GQ确定第一待查图节点。
本发明实施例提供的图数据的搜索方法,通过根据查询拓扑结构、预设的第一访问代价和可用资源条件,从图数据集合中确定可以添加至规约子图的图节点,从而得到规约子图,进而通过规约子图搜索到第一待查图节点。本发明实施例提供的方法,由于规约子图缓存在计算机内存中,不需通过IO操作就可以从内存中查询规约子图从而得到结果,其有效提高了计算机搜索图数据的效率;并且,在一次搜索完成后,计算机会释放之前生成的规约子图,待下次搜索时,计算机重新根据新的查询请求搜索图数据,即本发明实施例中计算机是根据查询条件实时生成规约子图,并实时根据规约子图获得精确的搜索结果,故本发明实施例提供的方法提高了图数据的搜索精度。
图10为本发明提供的图数据的搜索方法实施例六的流程示意图。本发明实施例涉及的方法仍然适用于上述图1所示的分布式计算系统。本实施例依然以计算机作为执行主体为例。本实施例涉及的是计算机通过图数据中的路标节点确定与查询条件匹配的第一待查图节点的具体过程。如图10所示,该方法包括:
S601:获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系。
具体的,计算机获取用户的查询请求。可选的,该查询请求可以是用户配置给计算机的,还可以是用户通过其他设备发送给计算机的。该查询请求中可以包括携带起始图节点和终止图节点的查询条件,并且该查询请求用于查询图数据集合中与该查询条件匹配的第一待查图节点。需要说明的是,图数据集合中的关联关系指的是起始图节点、终止图节点以及各个待查图节点构成的边。上述第一待查图节点可以为一个,也可以为多个。
例如,参见图11所示的图数据集合,假设查询请求中的查询条件为“我能否通过朋友认识自行车运动员Eric”,图11中michael为图数据的起始图节点,除michael之外的所有图节点均为待查图节点,Eric为图数据的终止图节点。图11中所示的michael、Eric与其他待查图节点之间的连接线即为图数据中的起始图节点与待查图节点之间的关联关系。
S602:根据图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树;其中,所述路标节点树包括具有层次关系的路标节点。
具体的,计算机根据图数据集合中所有图节点(包括起始图节点、终止图节点和待查图节点)的关联关系确定每个图节点的中间度核心性(betweenness centrality),根据每个图节点的betweenness centrality和预设的可用资源条件确定图数据集合的路标节点。也就是说,该路标节点为位于其他图节点的多条最短路径上的节点。
待计算机确定图数据集合的路标节点后,根据每个路标节点的betweenness centrality以及图数据集合中的关联关系建立路标节点树,该路标节点树中包括多个具有层次关系的路标节点。例如上述图11中所举的例子,图11中的cl3、cl4、cl5、cl6均为路标节点,且cl4的betweenness centrality的度数最大,作为最核心的路标节点。之后,计算机根据图数据集合中的图节点的关联关系将所确定的这四个路标节点建立路标节点树,具体可以为如果某路标节点a到某路标节点b可达或b可达a,则构造一条边(b,a)并加入路标节点树。该路标节点树可以参见图12所示,路标节点树出来包括路标节点之外还包括图数据集合中的其他节点。
需要说明的是,上述预设的可用资源条件是用来约束路标节点树所占的资源大小的,即构建的路标节点树所占的资源不能超过该预设的可用资源条件。
S603:根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点。
继续参见上述图11所举的例子,计算机获知查询条件中的起始图节点,并获知了图数据集合的终止图节点,则计算机可以根据查询条件搜索路标节点树中的关联关系,判断起始图节点到终止图节点是否可达,并在确定可达时输出从起始图节点可达终止图节点Eric所经过的路标节点,这些路标节点即为第一待查图节点。结合上述图11和图12所示的例子,计算机所确定的第一待查图节点可以为cl3、cl4、cl6。
本发明实施例提供的图数据的搜索方法,通过根据确定图数据集合中图节点的中间度核心性和预设的可用资源条件确定路标节点,并建立路标节点树,然后根据查询条件搜索该路标节点树确定满足该查询条件的第一待查图节点。由于在搜索第一待查图节点的过程中采用了路标节点树,使得搜索第一待查图节点所经过的路径和图节点均为直接有效的路径和图节点,避免了计算机在获取第一待查图节点时的无效搜索,节省了计算机的时间资源,提高了搜索效率。
图13为本发明提供的图数据的搜索方法实施例七的流程示意图。在上述图10所示实施例的基础上,本实施例涉及的是计算机根据查询条件搜索路标节点树,获得第一待查图节点的具体过程。如图11所示,上述S403具体包括:
S701:根据所述查询条件获取路标节点树中各个路标节点的辅助信息。
具体的,计算机构建了路标节点树之后,根据查询条件获取路标节点树中各个路标节点的辅助信息。可选的,该辅助信息可以为路标节点是否可达终止图节点,还可以为该路标节点到达终止图节点的访问代价或所花费的搜索时间,还可以为该路标节点所占的资源的大小,还可以为其他的辅助计算机获取第一待查图节点的信息。
S702:根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略。
可选的,该路径策略可以用于协助计算机选择一条最优路径获取第一待查图节点,或者向计算机指示路标节点树中哪些路径使得起始图节点不可达终止图节点。
S703:根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
本发明实施例提供的图数据的搜索方法,通过根据确定图数据集合中图节点的中间度核心性和预设的可用资源条件确定路标节点,并建立路标节点树,然后根据查询条件搜索该路标节点树确定满足该查询条件的第一待查图节点。由于在搜索第一待查图节点的过程中采用了路标节点树,使得搜索第一待查图节点所经过的路径和图节点均为直接有效的路径和图节点,避免了计算机在获取第一待查图节点时的无效搜索,节省了计算机的时间资源,提高了搜索效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图14为本发明实施例提供的图数据的搜索装置实施例一的结构示意图。该图数据的搜索装置101可以集成在上述分布式计算系统中的计算节点上。如图14所示,该装置包括:获取模块10和处理模块11。
其中,获取模块10,用于获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系;处理模块11,用于根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图,并通过所述查询条件查询所述规约子图,以得到所述第一待查图节点;其中,所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系。
本发明提供的图数据的搜索装置,可以参见上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,上述处理模块11,具体用于根据所述查询条件生成查询拓扑结构,并根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图;其中,所述查询拓扑结构包括多个查询节点,以及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系,所述规约子图所占的资源不超过所述可用资源条件。
更进一步地,上述处理模块11,具体用于读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,判断所述规约子图中是否包括所述读取的图节点,若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,则进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查询节点相匹配;所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
本发明提供的图数据的搜索装置,可以参见上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选的,在上述实施例的基础上,所述处理模块11,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点后,判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件后,进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间是否为空,若所述存储空间非空,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
可选的,在上述实施例的基础上,所述处理模块11,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记后,进一步判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,并进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价后,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点;若所述存储空间存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
进一步地,上述处理模块11,还用于若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值,并继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止或直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止。
更进一步地,上述处理模块11,还用于若所述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子图。
本发明提供的图数据的搜索装置,可以参见上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图15为本发明实施例提供的图数据的搜索装置实施例二的结构示意图。该图数据的搜索装置102可以集成在上述分布式计算系统中的计算节点上。如图15所示,该装置包括:获取模块20和处理模块21。
其中,获取模块20,用于获取查询请求;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系;处理模块21,用于根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树,并根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点;其中,所述路标节点树包括具有层次关系的路标节点。
本发明提供的图数据的搜索装置,可以参见上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,上述处理模块11,具体用于根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略后,根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
图16为本发明实施例提供的图数据的搜索设备实施例一的结构示意图。该图数据的搜索设备103可以为上述分布式计算系统中的计算节点,如图16所示,该设备包括处理器30、存储器31以及用户接口32,三者通过总线33连接。当然,除此之外,本发明实施例提供的设备还可以包括用于与其它设备通信的通信接口等。图16所示的设备具体可以为手机、平板电脑、台式计算机、便携式计算机、服务器等电子设备。
总线33用于实现处理器30、存储器31以及用户接口32之间的连接通信。该总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
用户接口32用于接收用户的操作,或向用户展示页面。例如,在本发明实施例中,该图数据的搜索设备可以通过用户接口32获取查询请求,从而使得处理器30根据该查询请求执行相应的操作。
存储器31用于存储计算机程序,可以包括应用程序和操作系统程序。
处理器30,用于从存储器31中读取计算机程序并用于执行以下操作,具体为:
获取查询请求;其中,所述查询请求包括携带起始图节点的查询条件,所述查询请求用于查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点以及所述起始图节点与所述多个待查图节点之间的关联关系以及所述多个待查图节点中的每个待查图节点与其它待查图节点之间的关联关系;
根据所述查询条件和预设的可用资源条件过滤所述图数据集合中不满足所述查询条件的第二待查图节点和包含所述第二待查图节点的关联关系,以得到规约子图;所述规约子图包括所述起始图节点、与所述查询条件匹配的第一待查图节点以及所述起始图节点与所述第一待查图节点之间的关联关系;
通过所述查询条件查询所述规约子图,以得到所述第一待查图节点。
进一步地,上述处理器30,具体用于根据所述查询条件生成查询拓扑结构;所述查询拓扑结构包括多个查询节点,以及所述多个查询节点中的每个查询节点与其它查询节点之间的查询拓扑关系,并根据所述查询拓扑结构中的查询节点之间的查询拓扑关系和预设的访问所述第一待查图节点的第一访问代价以及所述可用资源条件,过滤所述图数据集合中其访问代价超过所述第一访问代价的第二待查图节点和包含所述第二待查图节点的关联关系,以得到所述规约子图;其中,所述规约子图所占的资源不超过所述可用资源条件。
更进一步地,上述处理器30,具体用于读取存储空间中存储的查询节点和与所述查询节点匹配的图节点,判断所述规约子图中是否包括所述读取的图节点,若所述规约子图中不包括所述读取的图节点,则将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,则进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,并过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据预设的动态规约参数输出存储至所述存储空间的访问序列;其中,所述存储空间中存储有所述查询拓扑结构中的查询节点和与所述查询节点相匹配的图节点,所述查询节点包括起始查询节点,所述图节点包括所述起始图节点或所述待查图节点,所述起始图节点与所述起始查询节点相匹配;所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
可选的,作为本发明实施例的一种具体实现方式,上述处理器30,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点后,判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件后,进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间是否为空,若所述存储空间非空,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止;若所述存储空间为空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
可选的,作为本发明实施例的另一种具体实现方式,上述处理器30,具体用于将所述规约子图中的图节点数目设置为零,将存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目设置为零,并将动态规约参数设为第一预设值后,将所述查询拓扑结构中的起始查询节点和所述起始图节点存储至所述存储空间,并在读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,并对所述存储空间中已读取的查询节点和与所述查询节点匹配的图节点打标记后,进一步判断所述规约子图中是否包括所述读取的图节点;若所述规约子图中不包括所述读取的图节点,则进一步将所述读取的图节点添加至所述规约子图中,并确定所述规约子图所占的资源不超过所述可用资源条件,并进一步根据所述查询拓扑结构中的查询节点之间的查询拓扑关系计算与所述读取的图节点相邻的待查图节点的访问代价后,过滤所述访问代价超过所述第一访问代价的第二待查图节点以及包含所述访问代价超过所述第一访问代价的第二待查图节点的关联关系,并根据所述动态规约参数输出存储至所述存储空间的访问序列;并进一步判断所述存储空间中是否存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点;若所述存储空间存在未打标记的查询节点和与所述未打标记的查询节点匹配的图节点,则继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止;若所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记空,则进一步判断所述规约子图是否发生变化,并在判断所述规约子图没有发生变化时,结束计算,以得到所述规约子图;其中,所述起始图节点与所述起始查询节点相匹配,所述读取的图节点包括所述起始图节点或所述待查图节点,所述访问序列中的待查图节点的访问代价均不超过所述第一访问代价,所述动态规约参数用于控制所述访问序列中的待查图节点的数目。
进一步地,上述处理器30,还用于若判断所述规约子图发生变化,则将所述查询节点的起始查询节点和所述起始图节点重新存储至所述存储空间,并将所述动态规约参数的值调整为第二预设值,并继续读取所述存储空间中存储的查询节点和与所述查询节点匹配的图节点,直至所述存储空间存储的查询节点的数目和与所述查询节点匹配的图节点的数目为零为止或直至所述存储空间存储的查询节点和与所述查询节点匹配的图节点均打有标记为止。
更进一步地,上述处理器30,还用于若所述规约子图所占的资源超过所述可用资源条件,则结束计算,以得到所述规约子图。
本实施例涉及的图数据搜索设备可以执行上述方法实施例,其中包含的计算机程序可以按照前述装置实施例介绍的模块形式划分,也可以按照其它模块划分方式,也可以不划分模块。具体实现方法和技术效果参考前述方法实施例,在此不再赘述。
图17为本发明实施例提供的图数据的搜索设备实施例二的结构示意图。该图数据的搜索设备104可以为上述分布式计算系统中的计算节点,如图17所示,该设备包括处理器40、存储器41以及用户接口42,三者通过总线43连接。当然,除此之外,本发明实施例提供的设备还可以包括用于与其它设备通信的通信接口等。图17所示的设备具体可以为手机、平板电脑、台式计算机、便携式计算机、服务器等电子设备。
总线43用于实现处理器40、存储器41以及用户接口42之间的连接通信。该总线可以是ISA4总线、PCI4总线或EISA4总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
用户接口42用于接收用户的操作,或向用户展示页面。例如,在本发明实施例中,该图数据的搜索设备可以通过用户接口42获取查询请求,从而使得处理器40根据该查询请求执行相应的操作。
存储器41用于存储计算机程序,可以包括应用程序和操作系统程序。
处理器40,用于从存储器41中读取计算机程序并用于执行以下操作,具体为:
获取查询请求,并根据所述图数据集合中的多个图节点的中间度核心性和预设的可用资源条件确定所述图数据集合的路标节点,并根据所述路标节点建立路标节点树,并根据所述查询条件搜索所述路标节点树,以得到所述第一待查图节点;其中,所述查询请求包括携带起始图节点和终止图节点的查询条件,所述查询请求用于请求查询图数据集合中与所述查询条件匹配的第一待查图节点;所述图数据集合包括所述起始图节点、多个待查图节点、所述终止图节点,以及,所述起始图节点、所述终止图节点以及所述多个待查图节点之间的关联关系;所述路标节点树包括具有层次关系的路标节点。
进一步地,上述处理器40,具体用于根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略后,根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
本实施例涉及的图数据搜索设备可以执行上述方法实施例,其中包含的计算机程序可以按照前述装置实施例介绍的模块形式划分,也可以按照其它模块划分方式,也可以不划分模块。具体实现方法和技术效果参考前述方法实施例,在此不再赘述。
最后应说明的是:以上各实施例仅以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
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所述的装置,其特征在于,所述处理模块,具体用于根据所述查询条件获取所述路标节点树中各个路标节点的辅助信息,并根据所述路标节点的辅助信息确定用于获取所述第一待查图节点的路径策略后,根据所述路径策略搜索所述路标节点树,以得到所述第一待查图节点。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410751268.9A CN104504003B (zh) | 2014-12-09 | 2014-12-09 | 图数据的搜索方法和装置 |
PCT/CN2015/096845 WO2016091174A1 (zh) | 2014-12-09 | 2015-12-09 | 图数据的搜索方法和装置 |
EP15866451.6A EP3223169A4 (en) | 2014-12-09 | 2015-12-09 | Search method and apparatus for graph data |
US15/618,587 US9798774B1 (en) | 2014-12-09 | 2017-06-09 | Graph data search method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410751268.9A CN104504003B (zh) | 2014-12-09 | 2014-12-09 | 图数据的搜索方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104504003A true CN104504003A (zh) | 2015-04-08 |
CN104504003B CN104504003B (zh) | 2018-03-13 |
Family
ID=52945401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410751268.9A Active CN104504003B (zh) | 2014-12-09 | 2014-12-09 | 图数据的搜索方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9798774B1 (zh) |
EP (1) | EP3223169A4 (zh) |
CN (1) | CN104504003B (zh) |
WO (1) | WO2016091174A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016091174A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 图数据的搜索方法和装置 |
CN106354729A (zh) * | 2015-07-16 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
CN106991195A (zh) * | 2017-04-28 | 2017-07-28 | 南京大学 | 一种分布式的子图枚举方法 |
CN107622057A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种查找任务的方法和装置 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
CN108614821A (zh) * | 2016-12-09 | 2018-10-02 | 中国地质调查局发展研究中心 | 地质资料互联互查系统 |
CN108880835A (zh) * | 2017-05-09 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 数据分析方法及装置、计算机存储介质 |
CN108959584A (zh) * | 2018-07-09 | 2018-12-07 | 清华大学 | 一种基于社区结构的处理图数据的方法及装置 |
CN109299337A (zh) * | 2018-10-19 | 2019-02-01 | 南威软件股份有限公司 | 一种基于迭代的图搜索方法 |
CN110377667A (zh) * | 2019-06-17 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 关联图谱展示方法、装置、计算机设备和存储介质 |
CN110413848A (zh) * | 2019-07-19 | 2019-11-05 | 上海赜睿信息科技有限公司 | 一种数据检索方法、电子设备和计算机可读存储介质 |
CN110889000A (zh) * | 2018-09-10 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN111104560A (zh) * | 2018-10-10 | 2020-05-05 | 福建天泉教育科技有限公司 | 资源检索方法及计算机可读存储介质 |
CN111177486A (zh) * | 2019-12-19 | 2020-05-19 | 四川蜀天梦图数据科技有限公司 | 一种分布式图计算过程中的消息传递方法和装置 |
CN112214616A (zh) * | 2020-10-20 | 2021-01-12 | 北京明略软件系统有限公司 | 知识图谱流畅展示方法、装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10545945B2 (en) * | 2016-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Change monitoring spanning graph queries |
US10242223B2 (en) | 2017-02-27 | 2019-03-26 | Microsoft Technology Licensing, Llc | Access controlled graph query spanning |
WO2019232956A1 (en) * | 2018-06-08 | 2019-12-12 | Zhejiang Tmall Technology Co., Ltd. | Parallelization of graph computations |
JP7239433B2 (ja) * | 2019-10-02 | 2023-03-14 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
EP4235460A1 (en) * | 2022-02-23 | 2023-08-30 | Celonis SE | Method for filtering a graph |
US11934276B2 (en) | 2022-03-19 | 2024-03-19 | Dell Products L.P. | Enabling incremental backup operations targeting bare-metal recovery and system-state recovery data and metadata |
US11809277B1 (en) * | 2022-04-22 | 2023-11-07 | Dell Products L.P. | Topological view and insights of organization information technology environment based on bare-metal recovery and system-state recovery data and metadata |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332009A (zh) * | 2011-09-02 | 2012-01-25 | 北京大学 | 一种大规模数据集上的关系查询方法 |
CN102521332A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于强模拟的图模式匹配方法、装置及系统 |
CN102662974A (zh) * | 2012-03-12 | 2012-09-12 | 浙江大学 | 一种基于邻接节点树的网络图索引方法 |
US8316060B1 (en) * | 2005-01-26 | 2012-11-20 | 21st Century Technologies | Segment matching search system and method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370363B2 (en) * | 2011-04-21 | 2013-02-05 | Microsoft Corporation | Hybrid neighborhood graph search for scalable visual indexing |
US9355478B2 (en) * | 2011-07-15 | 2016-05-31 | Hewlett Packard Enterprise Development Lp | Reflecting changes to graph-structured data |
CN102819536B (zh) * | 2011-09-27 | 2015-08-19 | 金蝶软件(中国)有限公司 | 树型数据处理方法及装置 |
CN103377236B (zh) * | 2012-04-26 | 2018-02-16 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
EP2731023B1 (en) * | 2012-11-12 | 2015-03-25 | Software AG | Method and system for processing graph queries |
US9116738B2 (en) * | 2012-11-13 | 2015-08-25 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
US9053210B2 (en) * | 2012-12-14 | 2015-06-09 | Microsoft Technology Licensing, Llc | Graph query processing using plurality of engines |
US9268950B2 (en) * | 2013-12-30 | 2016-02-23 | International Business Machines Corporation | Concealing sensitive patterns from linked data graphs |
US10019536B2 (en) * | 2014-07-15 | 2018-07-10 | Oracle International Corporation | Snapshot-consistent, in-memory graph instances in a multi-user database |
CN104504003B (zh) * | 2014-12-09 | 2018-03-13 | 北京航空航天大学 | 图数据的搜索方法和装置 |
-
2014
- 2014-12-09 CN CN201410751268.9A patent/CN104504003B/zh active Active
-
2015
- 2015-12-09 WO PCT/CN2015/096845 patent/WO2016091174A1/zh active Application Filing
- 2015-12-09 EP EP15866451.6A patent/EP3223169A4/en not_active Ceased
-
2017
- 2017-06-09 US US15/618,587 patent/US9798774B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316060B1 (en) * | 2005-01-26 | 2012-11-20 | 21st Century Technologies | Segment matching search system and method |
CN102332009A (zh) * | 2011-09-02 | 2012-01-25 | 北京大学 | 一种大规模数据集上的关系查询方法 |
CN102521332A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于强模拟的图模式匹配方法、装置及系统 |
CN102662974A (zh) * | 2012-03-12 | 2012-09-12 | 浙江大学 | 一种基于邻接节点树的网络图索引方法 |
Non-Patent Citations (2)
Title |
---|
WENFEI FAN等: "Querying Big Data:Bridging Theory and Pratice", 《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》 * |
WENFEI FAN等: "Querying Big Graphs within Bounded Resources", 《PROCEEDINGS OF THE 2014 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016091174A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 图数据的搜索方法和装置 |
US9798774B1 (en) | 2014-12-09 | 2017-10-24 | Huawei Technologies Co., Ltd. | Graph data search method and apparatus |
CN106354729A (zh) * | 2015-07-16 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
CN106354729B (zh) * | 2015-07-16 | 2020-01-07 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
CN107622057A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种查找任务的方法和装置 |
CN108614821A (zh) * | 2016-12-09 | 2018-10-02 | 中国地质调查局发展研究中心 | 地质资料互联互查系统 |
CN108614821B (zh) * | 2016-12-09 | 2020-10-13 | 中国地质调查局发展研究中心 | 地质资料互联互查系统 |
CN106991195B (zh) * | 2017-04-28 | 2020-08-11 | 南京大学 | 一种分布式的子图枚举方法 |
CN106991195A (zh) * | 2017-04-28 | 2017-07-28 | 南京大学 | 一种分布式的子图枚举方法 |
CN108880835A (zh) * | 2017-05-09 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 数据分析方法及装置、计算机存储介质 |
CN108880835B (zh) * | 2017-05-09 | 2021-08-27 | 创新先进技术有限公司 | 数据分析方法及装置、计算机存储介质 |
CN108153883B (zh) * | 2017-12-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
CN108959584A (zh) * | 2018-07-09 | 2018-12-07 | 清华大学 | 一种基于社区结构的处理图数据的方法及装置 |
CN110889000B (zh) * | 2018-09-10 | 2022-08-16 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN110889000A (zh) * | 2018-09-10 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN111104560B (zh) * | 2018-10-10 | 2022-06-07 | 福建天泉教育科技有限公司 | 资源检索方法及计算机可读存储介质 |
CN111104560A (zh) * | 2018-10-10 | 2020-05-05 | 福建天泉教育科技有限公司 | 资源检索方法及计算机可读存储介质 |
CN109299337A (zh) * | 2018-10-19 | 2019-02-01 | 南威软件股份有限公司 | 一种基于迭代的图搜索方法 |
CN110377667A (zh) * | 2019-06-17 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 关联图谱展示方法、装置、计算机设备和存储介质 |
CN110413848A (zh) * | 2019-07-19 | 2019-11-05 | 上海赜睿信息科技有限公司 | 一种数据检索方法、电子设备和计算机可读存储介质 |
CN111177486A (zh) * | 2019-12-19 | 2020-05-19 | 四川蜀天梦图数据科技有限公司 | 一种分布式图计算过程中的消息传递方法和装置 |
CN112214616A (zh) * | 2020-10-20 | 2021-01-12 | 北京明略软件系统有限公司 | 知识图谱流畅展示方法、装置 |
CN112214616B (zh) * | 2020-10-20 | 2024-02-23 | 北京明略软件系统有限公司 | 知识图谱流畅展示方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170286484A1 (en) | 2017-10-05 |
CN104504003B (zh) | 2018-03-13 |
EP3223169A1 (en) | 2017-09-27 |
EP3223169A4 (en) | 2018-03-07 |
US9798774B1 (en) | 2017-10-24 |
WO2016091174A1 (zh) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104504003A (zh) | 图数据的搜索方法和装置 | |
EP3369045B1 (en) | Determining orders of execution of a neural network | |
CN103621026A (zh) | 虚拟机的数据交换方法、装置和系统 | |
US10885085B2 (en) | System to organize search and display unstructured data | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
CN105630847A (zh) | 数据存储方法、数据查询方法、装置及系统 | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
CN110162637B (zh) | 信息图谱构建方法、装置及设备 | |
CN110442773A (zh) | 分布式系统中节点缓存方法、系统、装置及计算机介质 | |
CN113791730B (zh) | 基于双存储池的放置组调整方法、系统、装置及存储介质 | |
CN108268216A (zh) | 数据处理方法、装置及服务器 | |
CN107257356B (zh) | 一种基于超图分割的社交用户数据优化放置方法 | |
CN109408711A (zh) | 数据过滤方法、装置、电子设备及存储介质 | |
CN111666417B (zh) | 生成同义词的方法、装置、电子设备以及可读存储介质 | |
CN102129454A (zh) | 一种基于云存储的百科数据处理方法及系统 | |
CN105205062A (zh) | 数据存储方法、数据读取方法和装置 | |
CN104780235A (zh) | Ip归属地查询方法、装置和服务器 | |
CN109697234B (zh) | 实体的多属性信息查询方法、装置、服务器和介质 | |
CN110221778A (zh) | 酒店数据的处理方法、系统、存储介质以及电子设备 | |
US20180196653A1 (en) | Methods for adaptive placement of applications and devices thereof | |
CN112328369B (zh) | 一种处理多个虚拟机间访问规则最少化的方法 | |
CN113779029A (zh) | 一种数据查询的方法及装置 | |
CN104598223A (zh) | 一种网络建模语言解析方法及装置 | |
CN105550285B (zh) | 构建poi词典的方法及装置 | |
CN110674369A (zh) | 一种数据查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |