CN102999558B - 使用数据结构处理搜索查询 - Google Patents
使用数据结构处理搜索查询 Download PDFInfo
- Publication number
- CN102999558B CN102999558B CN201210409001.2A CN201210409001A CN102999558B CN 102999558 B CN102999558 B CN 102999558B CN 201210409001 A CN201210409001 A CN 201210409001A CN 102999558 B CN102999558 B CN 102999558B
- Authority
- CN
- China
- Prior art keywords
- node
- terrestrial reference
- shortest path
- summit
- mark
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种生成存储于计算机存储器中用于在互连节点网络中执行搜索查询时使用的数据结构的方法,其中所述方法包括通过以下步骤选择地标节点并且在所述数据结构中示出所选择的地标节点:从所述网络节点对顶点对的第一样本采样;计算用于每个顶点对的最短路径,每个最短路径包括在所述顶点对中的每个顶点之间的顶点集;标识比任何其它顶点更经常出现于更多最短路径中的第一地标节点;从所述网络顶点去除包括所述第一地标节点的最短路径;并且标识比任何其它剩余顶点出现于更多剩余最短路径中的第二地标节点。本发明涉及一种新地标选择策略的改进,该策略通过所选地标最大化所有最短路径的覆盖。
Description
技术领域
本发明涉及处理搜索查询,并且具体地涉及生成用于在互连节点网络中处理查询的数据结构。
背景技术
存在计算机网络典型地包括很大数目的互连节点的许多情形。例如Skype的通信网络代表用于对等通信的大型社交网络。图1是典型计算机网络的一小部分的示意图。示出的网络包括多个节点Ni。每个节点可以如图所示与一个或者多个物理计算机设备关联,例如在节点Ni的情况下示出了该节点与移动设备2、PC 4和平板电脑6关联。每个节点与单个用户关联,该用户在这一情况下可以使用这些计算机设备中的任何一个来向特定网络注册或者登录。示出了节点由连接Ci互连。在物理网络的背景中,可以用任何已知的有线或者无线方式实施连接Ci。在与节点关联的用户的背景中,连接未必涉及网络中的单个物理连接,但是代表与在连接的任一端处的节点关联的用户之间的关系。作为例子,在Skype的情况下,两个用户在他们处于彼此的联系人列表中的情况下被视为连接。对这样的网络的常见挑战是允许用户例如按照姓名搜寻另一用户并且看见搜索的结果,这些结果以它们到他的最短路径距离的顺序排列。类似地,用户可能希望知道什么联系人链允许他到达网络中的另一用户。对解决该问题的尝试已经使用分析技术以便找到在图形中的给定一对节点之间的最短路径。
存在有解决这一问题的许多方法。现有方法可以广义地分类为精确的和近似的。对于在具有数以亿计的顶点的图形上执行在线查询,精确方法(如基于Dijkstra遍历的方法)极其缓慢,该顶点数目是现代社交网络的典型大小。在近似方法之中,用于这一问题的可扩展的算法系列是所谓的基于地标(或者基于略图)的方法。在这一技术系列中,选择地标节点的固定集并且预先计算从每个顶点到一些或者所有地标的距离。关于到地标的距离的知识连同三角不等式一起典型地允许人们在O(k)时间、O(kn)空间内计算任何两个顶点之间的近似距离,其中k是地标数目并且n是网络中的顶点数目。然后可以原样使用那些估计或者进一步利用它们作为图形遍历或者路由策略的组成成分(component)以便获得精确的最短路径。
基于地标的方法的一个重要方面是选择地标的方式——仔细选择策略可以具有显著正面效果。已经建议了如下策略:这些策略依赖于选择具有高程度、居间-和接近-中心性的地标以及保证在图形上及其路径上恰当分散地标。
参考Potamias等人的标题为“Fast Shortest Path Distance Estimation inLarge networks”的论文,该论文发表于CIKM ’09:2009年美国纽约第18届信息和知识管理国际会议的会议录第867-878页。在该论文中,在不同地标选择策略之下评估基于地标的距离估计算法。根据这篇论文,已经表明最高程度和接近中心性技术典型地产生最高精度。
虽然基于地标的算法未提供关于近似质量的强理论保障,但是已经表明它们在实践中表现良好从而升级至具有数以百万或者甚至数十亿计的边的图形,而精度是可接受的并且响应时间在每个查询一秒以下。
本发明的目的是较现有技术而言提高精度,而用于生成在处理搜索查询时使用的数据结构的计算时间是可接受的。
发明内容
根据本发明的一个方面,提供一种生成存储于计算机存储器中用于在互连节点网络中处理搜索查询的数据结构的方法,其中该方法包括通过以下步骤选择地标节点并且在数据结构中存储所选择的地标节点:从网络节点采样顶点对的第一样本;计算每个顶点对的最短路径,每个最短路径包括在该顶点对中的每个顶点之间的顶点集;标识比任何其它顶点更经常出现于更多最短路径中的第一地标节点;从网络顶点去除包括第一地标节点的最短路径;标识比任何其它剩余顶点出现于更多剩余最短路径中的第二地标节点。
本发明还提供一种计算机程序产品,该计算机程序产品包括在由计算机执行时实现上文限定的方法的步骤的程序代码装置。
数据结构在记录于电子存储介质上并且用在处理搜索查询时具有适用性。本发明的另一方面提供一种处理搜索查询以提供搜索结果的方法,该方法包括:在计算机设备处以数字消息的形式接收搜索查询,该查询标识源节点和目标节点;并且在计算机设备处执行用于生成搜索结果的应用,该应用执行以下步骤:访问通过上述方法生成的数据结构,其中每个地标已经随其存储了父链接集形式的最短路径树,其中每个父链接标识邻近的顶点节点;对于每个地标,标识源节点和目标节点在通向地标节点的最短路径树中的位置;对于每个地标节点,使用标识的目标节点和源节点的位置生成在源节点与目标节点之间的距离的度量;确定具有最短距离的地标;并且提供与该地标的最短路径树有关的搜索结果。
根据第一技术,通过以下操作生成距离的度量:在源节点与地标节点之间的最短路径上计算第一距离;在地标节点与目标节点之间的最短路径上计算第二距离;并且将第一与第二距离求和。
根据第二技术,通过标识在从源节点和目标节点到地标节点的最短路径树中的共同祖先节点来生成距离的度量。在一个版本中,在这之后为以下步骤:将从源节点到共同祖先节点的第一距离与从共同祖先节点到目标节点的第二距离求和。
在另一版本中,在这之后为以下步骤:标识在源节点与共同父节点之间的第一路径和在共同父节点与目标节点之间的第二路径中的所有节点对;定位所述对中的作为边的任何对;标识最短距离的边;并且使用边确定在源节点与目标节点之间的距离度量。
根据第三技术,通过以下操作生成距离的度量:记录在从源节点和目标节点到每个地标节点的最短路径树之间共同的节点;从源节点执行图形遍历(仅遍历共同记录的节点)以更新从源节点到目标节点的最短路径;并且使用更新的最短路径确定距离的度量。
在下文中描述的本发明实施例提供涉及一种新地标选择策略的改进,该策略寻求通过所选地标最大化所有最短路径的覆盖。
在下文中讨论的本发明实施例允许例如在如下图形上的显著改进的执行时间、例如多于四秒,该图形具有比2010年2月的Skype图形快照的边的十分之一更少的边和顶点的百分之一更少的顶点。
为了更好地理解本发明并且示出如何可以将本发明付诸实践,现在将通过例子参照如下附图。
附图说明
图1是网络的部分的图。
图2是用于执行搜索查询的系统的框图。
图3图示了用于一个地标的最短路径树。
图4图示了用于一个地标的数据集。
图5图示了具有更低共同祖先的最短路径树。
图6图示了具有边插入的最短路径树。
图7是地标选择方法的流程图。
图8是实验结果的表。
具体实施方式
图2是用于处理搜索查询的系统的示意框图。系统包括实施两个部件的计算机设备20。第一部件22是数据结构,该数据结构是以如这里进一步描述的图形形式保持数据的存储器或者其它形式的计算机存储库。第二部件是访问数据结构22并且使用它处理搜索查询的处理功能(function)24。在操作中,计算机设备20接收数字消息形式的查询26,并且计算机设备20操作以生成结果28。该结果可以由用户结果功能(function)30以多个不同方式利用。例如用户结果功能30可以是将其它输入与结果28一起接收并且向用户生成搜索结果的搜索功能。可替代地,用户结果功能30可以是向用户直接显示结果28的显示器。
每个部件22、24可以由处理器和存储器实施。将容易理解单个处理器和单个存储器可以用来提供两个部件,或者这些部件可以由分开的处理和分开的存储器提供。在第一组件中,由处理器22a执行的代码生成和维持数据结构22,并且如后文将更完全描述的那样在第二部件中由处理器执行的代码处理搜索查询。
计算机设备20接收来自用户的查询26。用户可以将查询输入到通过任何已知输入手段将他与之关联的物理设备之一中。通过任何传输机制以数字消息的形式向计算机设备20供应查询。例如当用户与客户端终端关联时,可以通过因特网向实施计算机设备20的服务器供应查询。可替代地,可以在客户端终端处本地处置查询。如将在下文中变得更清楚的那样,查询包括源节点和目标节点的标识符,该源节点一般是与输入查询的用户关联的节点,该目标节点将是查询的对象。
较现有技术而言的改进源于选择地标。提出“贪婪的”方法以选择提供顶点对的随机样本中的所有最短路径的最佳覆盖的这些地标。
在描述本发明之前,将首先描述基于地标的距离估计技术。
基本定义
令G=(V,E)表示具有n=|V|个顶点和m=|E|个边的图形。为了简化说明,我们将考虑无方向非加权图形,尽管该方法可以容易推广以便也适应加权有方向图形。
在两个顶点之间的长度为l的路径被定义为序列,其中并且。我们将路径的长度l表示为。两个路径和的级联是组合路径。
在顶点s与t之间的距离d(s,t)被定义为在s与t之间的最短路径的长度。图形中的最短路径距离是度量(metric)并且满足三角不等式:对于任何,
。 (1)
如果存在穿过u的最短路径,则上界变成等式。
图形的直径是图形中的最短路径的最大长度。社交网络在这方面的重要性质是它们的直径小。顶点的中心性是用来指代图形内的顶点的多个重要性度量的一般术语。居间中心性对应于穿过给定顶点的最短路径的的平均比例(mean proportion)。接近中心性测量顶点到图形中所有其他顶点的平均距离。
基于地标的距离估计
在描述改进的地标选择过程之前,将说明基本的基于地标的距离估计技术。
如公式1中指出的那样,如果我们固定单个地标节点u并且预先计算从这一节点到图形中的每个其它顶点v的距离d(u,v),我们可以得到针对在任何两个顶点s与t之间的距离d(s,t)的上界近似:
如果我们现在选择k个地标的集合,则可以计算潜在更好的近似:
在原理上,三角不等式也允许计算关于距离的下界,但是先前工作指示下界估计不如上界估计那样精确。
在下文中,我们将这一算法称为地标-基本(LANDMARKS-BASIC)(算法1)。
对于非加权图形,该算法需要使用k个BFS遍历来预先计算距离的O(km)时间和存储距离的O(kn)空间。在O(k)时间内答复每个查询。注意这一方式仅允许我们计算近似距离,而未提供一种用于获得路径本身的方式。
改进的基于地标的算法
最短路径树
对上述算法的改进是维持用于每个地标的显式最短路径树(SPT)而不是将到地标的距离简单地存储为数的思想。更准确地说,令为从顶点v到地标u的任意选择的最短路径上的下一顶点。我们将称为v在u的SPT中的父链接(见图3)。类似于距离,可以以每个地标O(m)时间在图形的BFS遍历期间以简单直接方式计算父链接。
在图3中,黑箭头表示父链接。虚线是图形边,这些边不是树的部分。
父链接的可用性使得我们能够通过简单地跟随对应链接来恢复从每个顶点v到每个地标u的精确最短路径。例如,如果源节点是v5,则数据集指示;;。因而它也允许计算最短路径距离d(u,v)(在该情况下为3),并且因此直接应用地标-基本算法的思想,而仅有的不同在于每个距离计算现在需要O(D)个步骤,其中D是图形的直径。随着社交网络图形直径趋小,这样的计算的开销是较少的。
注意这一方法允许除了距离近似之外还获得在任何两个顶点之间的实际路径。图4示出了数据结构22中的用于地标u的数据集。将理解针对每个地标保持相似数据集。
最低共同祖先方法
除了执行基本的基于地标的近似之外,SPT的可用性还允许我们显著改进关于许多顶点对的距离的上界估计。考虑图5中描绘的情形并且假设我们希望近似v5与v8之间的距离。通过应用基本技术,我们获得上界估计。然而观察到一旦我们有显式最短路径:
我们就可以注意到它们二者穿过v3,因此以下估计将导致更好上界:
。一般而言,无论两个最短路径和何时具有共同顶点v≠u,我们都有:
, (2)
并且因此如果我们使用v而不是u近似d(s,t),则我们获得更严密上界。自然地,选择提供最好的这样的近似的顶点v是有意义的。可见这一顶点是s和t在u的SPT中的最低共同祖先(LCA)。当近似v5与v8之间的距离时,我们使用它们的最低共同祖先v3而不是地标u作为参考。
这一观察提供LCA近似方法(距离-LCA,算法2)的基础。通过将该距离估计代入公式3中,我们获得具有增加的精度的新算法地标-LCA(LANDMARKS-LCA)。注意也可以平凡地扩展这一算法以返回实际路径。
一种用于理解改进程度的方式是注意到基本算法将仅针对穿过地标顶点的最短路径提供精确估计。在图5中,那些仅为连接v2与v1和v3的路径。然而LCA算法将针对沿着SPT存在的所有最短路径提供精确答复并且将典型地有明显更多那些最短路径。
地标-BFS
算法地标-基本和地标-LCA将每个地标独立于其它地标地用于距离近似。这不是对所有可用地标数据的最好可能的使用。例如考虑图6。当近似顶点v1与v5之间的距离时,如果我们独立使用两个地标,则我们将获得长度为5的路径。通过组合两个子树,我们可以发现长度为4的更好路径。
这暗示较先前方法而言的强大改进。为了近似两个顶点之间的距离,收集从那些顶点到所有地标的所有路径并且在由那些路径的并集产生的子图形上执行常见的BFS(或者在加权图形的情况下为Dijkstra)遍历。我们将这一算法称为地标-BFS(算法3)。
对于k个地标,子图形的大小将少于2kD。因而地标-BFS的存储器复杂度为O(kD)并且时间复杂度至多为O(k2D2)。
通过考虑其它图形边(即“捷径”),在地标-BFS中我们进一步将距离近似改进至3。
取捷径
用v表示s和t的最低共同祖先。LCA算法通过与的级联来近似。然而可能发生由边直接连接顶点与顶点。在这一情况下,可以通过将路径、和级联来获得对的甚至更短近似。例如在图5中,边充当从到的捷径。如果我们考虑这一个边,则我们可以将LCA距离估计进一步改进为真正的最短路径。
为了对捷径定位,我们可以简单地检查中的所有顶点对,并且如果它们中的一些由边连接,则找到提供最佳距离估计的边。可以在中、即至多个步骤完成这一点。我们将所得距离近似方法称为距离-SC(算法4)。通过使用公式3中的该上界估计,我们获得基于地标的算法地标-SC(LANDMARKS-SC)。
地标选择技术
虽然可以随机均匀选择地标,但是实验已经表明选择具有最高程度或者最低接近中心性的地标典型地保证更好的距离估计,然而表明两种方法提供相似的精度。现在描述一种具有提高的精度的新颖地标选择技术。
最好覆盖
当地标u落在s与t之间的最短路径上时,它的上界距离估计是精确的。我们说这样的地标覆盖对(s,t)。因而最合乎需要的地标集将是覆盖尽可能多的顶点对的地标集。参照算法4和图7说明基于采样的简单贪婪策略。供应(702)代表网络的具有V个顶点的图形G。我们对M个顶点对的集合采样(704)并且计算(706,708)用于每对的精确最短路径。可以通过任何已知方法如BSF图形遍历实现这一计算。作为第一地标,我们选择(710)存在于样本的最大数目的路径中的顶点、即最流行的顶点。我们从样本去除(712)该第一地标覆盖的路径并且继续选择(通过针对i<k返回到710)覆盖大多数剩余路径的第二地标作为顶点。以相似方式确定返回(714)的集合中的后续地标。在数据结构22中存储地标。
递增更新
如果图形受到密集的边插入和删除,则原先已经计算的地标变得过时并且近似性能恶化。因此必须维持地标最新。虽然这可以借助每天或者每小时完全重新计算来实现,但是这样的解决方案在计算上昂贵。另外对于某些应用如上文提到的社交搜索,一直维持地标最新可能特别重要。实际上,如果新用户依赖于社交搜索功能建立他们的最初联系人列表,则重要的是添加新联系人将立即在随之产生的搜索排序中得到反映。
幸运的是,当以具有单指针(父链接)的最短路径树的形式维持地标时,可以递增地更新他们以适应边插入或者删除。已知用于在插入和删除之下维持SPT的过程,例如见D.Frigori等人的“Full dynamic algorithms for maintaining shortest path trees”,该文献发表于Journal of Algorithms的2000年11月2日第34卷第251-281页。在具有小直径的非加权图形的特定情况下,它们是相当简单直接的。
作为非正式例子,考虑图3上呈现的SPT。假设恰好已经向图形中插入边。SPT更新算法将继续如下。首先注意新添加的边提供从v8到地标的比先前可用的路径更短的路径。因此必须改变v8的父指针以利用新边:。由于从v8到地标的路径已经改进,我们必须递归地检查v8的所有邻居(即v6和v7)并且校验将它们的父指针切换到v8是否将改进它们的通向地标的先前已知的路径。这对于v6和v7而言均成立,因此我们设置。针对v6和v7的所有邻居,我们再次重复这一点。发现没有新路径改进,我们完成更新。
边的删除涉及两道关(pass)。再次考虑图3并且假设从图形去除边。为了找到v3通向地标的新路径(和新父指针),我们首先检查它的邻居(v5和v6)。遗憾的是,它们二者依赖于v3以便到达地标,因此它们未提供立即的定位(fix)。使用最佳的可用新路径长度(目前为止为∞)作为关键词(key),我们在优先级队列中暂时记录v3。然后我们递归地下降以处理v3在SPT中的子代。顶点v5没有立即定位并且在具有关键词∞的优先级队列中被记录。然而顶点v6可以连接到v4从而保持长度为3的通向地标的路径。因而无需处理v6的子代。在重新连接v6之后,我们必须更新它在优先级队列中的邻居(v3和v5)的关键词——长度为4的新潜在路径好于先前记录的∞。这完成第一道关。在第二道关中,我们清空优先级队列从而重建SPT的其余部分。
在算法5和6中我们提供更新过程的更正式描述。
在理论上,单个更新可以触发用于整个图形的SPT重新计算(例如删除如下的边,该边是在地标与所有其它节点之间的桥梁)。然而在实践中,这样的情形是罕见的,并且根据我们的实验,为了处理实际Skype网络中的单个更新所必需的分摊时间是毫秒级。
网络
以下是现实世界社交网络图形的例子,这些例子代表在网络大小方面的四个不同数量级。
· DBLP。DBLP数据集包含计算机科学出版物的书目信息。每个顶点对应于一个作者。两个作者在它们已经合著至少一个出版物的情况下由边连接。
· Orkut。Orkut是大型社交联网网站。它是这样的图形,其中每个用户对应于顶点并且每个用户到用户连接是边。
· Twitter。Twitter是微博站点,该站点允许用户相互追随从而形成网络。
· Skype。Skype是用于对等通信的大型社交网络。我们认为两个用户在他们处于彼此的联系人列表中的情况下由边连接。
在表1中概括这些数据集的性质。该表示出了顶点数目|V|、边数目|E|、在顶点之间的平均距离d(关于样本顶点对计算的)、近似直径△、最大连接组件中的顶点分数|S|/|V|和用于在图形上执行BFS遍历的平均时间tBFS。
表1:数据集。
存储这里关于精度进行的比较陈述作为实验,这些实验使用来自上述数据集的每个图形的SV顶点对的随机样本和参数。
计算近似误差为,其中I’是近似并且I是实际距离。
适当硬件是访问IBM DS 3400 FC SAN盘阵列、运行Red Hat Enterprise Linux 5操作系统的服务器,该服务器具有32×四芯AMD Opteron 64位2.2GHz处理器、256G RAM。
根据上文描述,描述对用于基于地标的最短路径估计的现有方式的两个改进。这些改进达到在精度、查询执行时间和用于预先计算的数据的盘使用之间的折衷。预先计算的数据是指在搜索查询中必须生成和维持以便容易访问的数据结构22。关于先前有关工作已经获得上至25%的改进而又维持每个查询的响应时间为数毫秒——即使对于具有数以十亿计的边的图形——和可与先前方法相比的存储器空间消耗。另外,上文描述的方法的独有性质是对动态更新的支持。
针对无方向非加权图形的情况下呈现算法。可以通过将SPT预先计算阶段中和地标BFS-算法中的BFS替换为Dijkstra遍历而将技术推广至加权图形。推广至有方向图形需要计算用于每个地标的两个最短路径树——第一个保持通向地标的距离并且第二个保持来自地标的距离。然后算法需要略微更新以适当使用两个树(例如算法3的第4和5行将引用两个不同树而不是一个树)。
作为距离近似方案,如例如Goldberg等人在2005年第16届ACM – SIAM分立算法讨论会的第156-165页发表的论文中描述的那样,可以在单向或者双向A*搜索中使用基于地标的算法作为试探。具体而言,这一高效估计精确最短路径的能力允许我们取得用于选择最佳覆盖地标的更大样本。注意由于上述方法的递增更新能力,结果是快速全动态精确最短路径算法。
在上文描述的方法中,预先选择所有地标并且从未修正地标选择。可以通过使用在处理查询期间收集的信息以便添加或者去除地标而获得又一改进。每当使用地标-LCA算法来答复查询时,我们可以标识使用哪些地标并且使用哪些指定顶点作为LCA。基于LCA的使用频率,可以提升某些顶点以变成地标或者可以丢弃未频繁使用的地标。
附录
Claims (9)
1.一种处理搜索查询以提供搜索结果的方法,所述方法包括:
在计算机设备处接收数字消息形式的搜索查询,所述查询标识源节点和目标节点;并且
在所述计算机设备处执行用于生成搜索结果的应用,所述应用执行以下步骤:
访问一种数据结构,其中每个地标已经随其存储了父链接集形式的最短路径树,其中每个父链接标识邻近的顶点节点;
对于每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;
对于每个地标节点,使用所标识的所述目标节点和所述源节点的位置生成所述源节点与所述目标节点之间的距离的度量;
确定具有最短距离的所述地标;以及
提供与该地标的所述最短路径树有关的搜索结果;
其中通过如下步骤生成距离度量:标识在从所述源节点和所述目标节点到所述地标节点的所述最短路径树中的共同祖先节点;标识在所述源节点与所述共同祖先节点之间的第一路径和在所述共同祖先节点与所述目标节点之间的第二路径中的所有节点对;对所述对中的作为边的任何对定位;标识最短距离的所述边;并且使用所述边确定在所述源节点与所述目标节点之间的距离度量。
2.根据权利要求1所述的方法,其中提供搜索结果的步骤包括向用户显示所述搜索结果;或者向搜索功能提供所述搜索结果,所述搜索功能生成在多个搜索结果之间的比较以按照排列顺序提供输出集。
3.根据权利要求1所述的方法,其中所述搜索结果包括具有最短距离的所述地标的所述最短路径树中的节点标识符列表;或者针对最短距离的所述地标的所述最短路径树中的节点数目。
4.根据权利要求1所述的方法,其中生成的所述数据结构存储于计算机存储器中用于在互连节点网络中执行搜索查询时使用,其中生成所述数据结构:包括通过以下步骤选择地标节点并且在所述数据结构中示出所选择的地标节点:
从所述网络节点对顶点对的第一样本采样;
计算用于每个顶点对的最短路径,每个最短路径包括在所述顶点对中的每个顶点之间的顶点集;
标识比任何其它顶点更经常出现于更多最短路径中的第一地标节点;
从所述网络顶点去除包括所述第一地标节点的最短路径;并且
标识比任何其它剩余顶点出现于更多剩余最短路径中的第二地标节点。
5.根据权利要求4所述的方法,生成所述数据结构还包括:在所述数据结构中与每个地标节点关联地存储用于所述网络中的每个顶点的顶点数据。
6.根据权利要求4所述的方法,其中所述顶点数据包括从每个顶点到所述地标节点的距离,或者最短路径树。
7.根据权利要求4所述的方法,其中所述最短路径树是父链接集的形式,其中每个父链接标识在所述顶点与所述地标节点之间的所述最短路径中的邻近顶点节点。
8.一种处理搜索查询以提供搜索结果的方法,所述方法包括:
在计算机设备处接收数字消息形式的搜索查询,所述查询标识源节点和目标节点;并且
在所述计算机设备处执行用于生成搜索结果的应用,所述应用执行以下步骤:
访问一种数据结构,其中每个地标已经随其存储了父链接集形式的最短路径树,其中每个父链接标识邻近的顶点节点;
对于每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;
对于每个地标节点,使用所标识的所述目标节点和所述源节点的位置生成所述源节点与所述目标节点之间的距离的度量;
确定具有最短距离的所述地标;以及
提供与该地标的所述最短路径树有关的搜索结果;
其中通过如下步骤生成距离度量:标识在从所述源节点和所述目标节点到所述地标节点的所述最短路径树中的共同祖先节点;以及将从所述源节点到所述共同祖先节点的第一距离与从所述共同祖先节点到所述目标节点的第二距离求和。
9.一种用于处理搜索查询以提供搜索结果的计算机设备,所述计算机设备包括:
第一部件,包括根据权利要求4-7中任一方法生成的数据结构,每个地标节点已经随其存储了父链接集形式的最短路径树,其中每个父链接标识在所述数据结构中的每个节点与所述地标节点之间的最短路径中的邻近顶点节点;以及
第二部件,包括被配置成执行用于生成搜索结果的应用的处理器,所述应用执行以下步骤:
访问所述数据结构;
针对每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;
针对每个地标,使用所标识的所述目标节点和所述源节点的位置生成源节点与目标节点之间的距离度量;
确定具有最短距离的所述地标;以及
提供与该地标的所述最短路径树有关的搜索结果;
其中通过如下步骤生成距离度量:标识在从所述源节点和所述目标节点到所述地标节点的所述最短路径树中的共同祖先节点;标识在所述源节点与所述共同祖先节点之间的第一路径和在所述共同祖先节点与所述目标节点之间的第二路径中的所有节点对;对所述对中的作为边的任何对定位;标识最短距离的所述边;并且使用所述边确定在所述源节点与所述目标节点之间的距离度量。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1118333.2A GB201118333D0 (en) | 2011-10-24 | 2011-10-24 | Processing search queries using a data structure |
GB1118333.2 | 2011-10-24 | ||
US13/341488 | 2011-12-30 | ||
US13/341,488 US8521724B2 (en) | 2011-10-24 | 2011-12-30 | Processing search queries using a data structure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999558A CN102999558A (zh) | 2013-03-27 |
CN102999558B true CN102999558B (zh) | 2016-12-21 |
Family
ID=47928126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210409001.2A Active CN102999558B (zh) | 2011-10-24 | 2012-10-24 | 使用数据结构处理搜索查询 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999558B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226581A (zh) * | 2013-04-02 | 2013-07-31 | 浙江大学 | 一种基于方向寻优的启发式最短路径搜索方法 |
US10120956B2 (en) * | 2014-08-29 | 2018-11-06 | GraphSQL, Inc. | Methods and systems for distributed computation of graph data |
CN106681920B (zh) * | 2016-12-27 | 2020-11-03 | 河南理工大学 | 一种基于测地距的并发系统模型检测方法 |
CN109117429B (zh) * | 2017-06-22 | 2020-09-22 | 北京嘀嘀无限科技发展有限公司 | 数据库查询方法、装置和电子设备 |
CN113626658A (zh) * | 2021-08-12 | 2021-11-09 | 中电积至(海南)信息技术有限公司 | 一种用于大规模复杂网络的最短路径查询方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004047007A1 (en) * | 2002-11-15 | 2004-06-03 | Bioarray Solutions, Ltd. | Analysis, secure access to, and transmission of array images |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156330A1 (en) * | 2005-12-29 | 2007-07-05 | Microsoft Corporation | Point-to-point shortest path algorithm |
-
2012
- 2012-10-24 CN CN201210409001.2A patent/CN102999558B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004047007A1 (en) * | 2002-11-15 | 2004-06-03 | Bioarray Solutions, Ltd. | Analysis, secure access to, and transmission of array images |
Non-Patent Citations (2)
Title |
---|
复杂社会网络的介数性质近似计算方法研究;唐晋韬,王挺;《计算机工程与科学》;20081231;第30卷(第12期);9-14,18 * |
路径节点驱动的低代价最短路径树算法;周灵,王建新;《计算机研究与发展》;20110531;第48卷(第5期);721-728 * |
Also Published As
Publication number | Publication date |
---|---|
CN102999558A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8527503B2 (en) | Processing search queries in a network of interconnected nodes | |
Zhao et al. | Efficient shortest paths on massive social graphs | |
US8521724B2 (en) | Processing search queries using a data structure | |
Ribeiro et al. | Sampling directed graphs with random walks | |
Gehrke et al. | Overview of the 2003 KDD Cup | |
CN102999558B (zh) | 使用数据结构处理搜索查询 | |
US9189280B2 (en) | Tracking large numbers of moving objects in an event processing system | |
CN112019569B (zh) | 恶意域名检测方法、装置及存储介质 | |
EP3058487B1 (en) | Processing search queries using a data structure | |
JP6222680B2 (ja) | 位置情報サービスを実施するための方法、装置、およびシステム | |
US20140354649A1 (en) | Distributed k-core view materialization and maintenance for graphs | |
US20080270549A1 (en) | Extracting link spam using random walks and spam seeds | |
WO2012030411A1 (en) | Method for classification of objects in a graph data stream | |
CN106462620A (zh) | 巨型网络上的距离查询 | |
US6594694B1 (en) | System and method for near-uniform sampling of web page addresses | |
Sommer | Approximate shortest path and distance queries in networks | |
JP5059132B2 (ja) | 地域情報検索サーバ及び地域情報検索方法 | |
CN103064872B (zh) | 使用数据结构处理搜索查询 | |
Mahyar et al. | CS-ComDet: A compressive sensing approach for inter-community detection in social networks | |
CN112968870A (zh) | 一种基于频繁项集的网络团伙发现方法 | |
CN110263082B (zh) | 数据库的数据分布分析方法、装置、电子设备及存储介质 | |
CN109885542A (zh) | 项目文件管理方法、装置及存储介质 | |
More | Modified path traversal for an efficient web navigation mining | |
Fu et al. | Graph calculus: Scalable shortest path analytics for large social graphs through core net | |
CN110297950A (zh) | 一种基于Blogel的分布式图受限可达性查询处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |