CN100524300C - 内容定向的索引和搜索方法与系统 - Google Patents
内容定向的索引和搜索方法与系统 Download PDFInfo
- Publication number
- CN100524300C CN100524300C CNB2004800341994A CN200480034199A CN100524300C CN 100524300 C CN100524300 C CN 100524300C CN B2004800341994 A CNB2004800341994 A CN B2004800341994A CN 200480034199 A CN200480034199 A CN 200480034199A CN 100524300 C CN100524300 C CN 100524300C
- Authority
- CN
- China
- Prior art keywords
- file
- uri
- content signature
- map database
- binary file
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种索引和搜索(102)二进制文件领域内的新的解决方法,所述二进制文件包括来自公共因特网(104)的各种二进制文件例如多媒体文件,包括图片文件、MP3文件和其他音频/视频文件。本发明介绍了一种根据其内容签名索引二进制文件例如多媒体文件的方法,所述内容签名唯一地标识所述二进制文件,以及通过遍历在索引阶段(101)建立的索引图数据库来搜索相关的文件的方法。本发明可用于搜索引擎和下载引擎(105),也可与基于文本的索引和搜索技术结合使用。结果,这种扩展使用会使多媒体文件的语境扩大,并增加了描述该语境的关键字的相关精确性。
Description
技术领域
本发明涉及各种文件的索引和搜索,特别是二进制文件,例如包括软件程序和补丁在内的可执行文件,包括RAR文件和ZIP文件在内的压缩文件,包括数字图象、MP3文件和其他视频与音频文件的多媒体文件。本发明还涉及对上述文件进行索引和搜索后的排序,以及快速可靠地搜索和下载上述文件的方法。
背景技术
在当今日益复杂的技术世界,用于索引和搜索因特网内容的方法在大量的内容丰富的应用中充当了很重要的角色,例如普通的因特网搜索引擎或企业搜索引擎。
搜索引擎通常包括四个核心部分:搜索蜘蛛(Spider)、语法分析器(Parser)或索引器(Indexer)、查询引擎(Query engine)和Web界面。搜索蜘蛛又称为机器人(Robot)或网络爬虫(Web crawler),是基于Web的搜索引擎的核心。搜索蜘蛛是一种独立的网络客户端程序,它能自动地连接到Web服务器并请求网页。其中会对响应进行检查,如果请求成功,则可获取网页并建立索引。在建立索引阶段,将文本网页内的词与词位置等其他信息一起存入索引内。创建的搜索引擎索引在原理上与书的索引相似。书的索引针对特定词,而搜索引擎的索引包含有词以及对包含有这些词的网页的参考。对某一关键字创建索引后,查询引擎将提供对包含有该关键字的网页的搜索。由于包含某一特定关键字的网页数量很大,因而还需要根据某些特定规则对这些网页进行排序,例如,根据被其他网页引用的数量进行排序。最后,使用Web界面浏览匹配网页的分类表。Web界面的设计和布置不属于本申请的范围。
总之,文本Web搜索引擎对Web执行增量扫描和分析,提取关键字,并生成索引以便之后响应用户的查询进行搜索。二进制Web搜索引擎更为复杂。以下介绍的图片Web搜索引擎便是其中的一个例子。如果可以基于每张图片的内容手动加入关键字,便可以像文本网页一样进行索引和搜索。但是,这需要大量的体力劳动对Web上的图片添加标识。无可置疑的,这种方法实际不可行,因为Web上存在大量的不断增加的图片。
为了使搜索过程能自动进行,Web搜索引擎一般使用图片的文件名或其他文字来标识该图片。但是,这种方法生成的搜索结果很差。Web上的多数图片都没有合适的文件名来表达其内容。此外,文件名一般都很短,而且多数文件名只有数字,不能准确清楚的描述文件的内容。而且这也进一步降低了搜索结果的准确性。此外,由于因特网的全球性,Web上的图片使用各种不同的语言来标识和描述,这进一步使索引和搜索正确的图片文件的过程变得复杂了。
多数现在使用的索引和搜索技术使用文本来实现前面介绍的索引和搜索过程。此外,少数索引和搜索技术以图片文件为目标,关注于图片的特定属性,例如颜色、亮度、线条的样式等等。这种方法在以下引用文件中给出了介绍:Chad Carson等,Blobworld:A system for region-based image indexing andretrieval,the Third Int.Conf.on Visual Information Systems,June 1999;Anil K.Jain and Aditya Vailaya,Image retrieval using color and shape,Pattern Recognition,29(8),1996;以及Michael Ortega等,Supporting Similarity Queries in MARS,ACM Multimedia 97.尽管这一方法是对纯文本搜索方法的一种改进,但这种方法对其搜索的二进制文件的类型以及用于查找目标文件的参数仍存在局限性。此外,二进制Web搜索引擎还需要解决下载问题,因为二进制文件可能非常大。然而,很少有搜索方法提供了对这一问题的解决方案。因此,急需提出一种改进的索引和搜索方法,以便能够定位和下载使用现有的方法不容易准确提供的想要的二进制文件。
发明内容
本发明提出并介绍了一种内容定向的索引和搜索(Content Oriented IndexaNd Search,简称COINS)技术。COINS介绍了一种根据唯一标识二进制文件的签名对所述二进制文件(例如多媒体文件)进行索引,并通过对在索引阶段建立的索引图进行遍历(walk through)来搜索相关文件的方法。具体来说,COINS可用于精确地标识一个唯一内容的多个源(根据URLs),该多个源可用于增加下载速度。最后,COINS还可与基于文本的索引和搜索技术相结合来实现二进制文件搜索引擎,其中以二进制文件的URL作为搜索结果,而不再以Web文件的URL为搜索结果。
本发明提供一种生成二进制文件索引图数据库的方法和系统,包括如下步骤:获取网络中的目标二进制文件的列表,其内包含有目标二进制文件的文件识别信息,所述文件识别信息包括页面URI和文件URI;使用保证计算结果唯一性的算法计算所述二进制文件的内容签名,并建立文件URI和内容签名的链接;如果页面URI中包含文件URI,则建立页面URI和文件URI的链接;存储所述内容签名、页面URI、文件URI以及相应的链接关系,从而组成所述二进制文件的索引图数据库。
本发明的一个实施例中,提供一种方法和系统,用于进一步识别与具有相同内容签名的多个二进制文件相关的多个关键字,以及将所述多个关键字合并为关键字集合,从而将所述文件内容签名与所述关键字集合相关联。另一个方面,本发明还提供一种生成文件内容签名的方法和系统,包括如下步骤:将所述二进制文件分割为大小合适的多个片段;使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;基于所述多个片段内容签名生成所述二进制文件的内容签名。
根据本发明的再一个方面,提供一种搜索因特网上的二进制文件的方法和系统,包括如下步骤:接收来自发起源的包含有目标二进制文件的搜索查询;所述搜索查询包括关键字或者文件URI;依据搜索查询在索引图数据库中找出多个内容签名,以及与所述内容签名相链接的多个二进制文件;所述索引图数据库包括关键字与内容签名的关联关系,以及内容签名与文件URI的关联关系,如果页面URI中包含文件URI,则还包括页面URI和文件URI的关联关系;所述内容签名是针对二进制文件采用保证计算结果唯一性算法计算得到的;将与所述搜索查询相关的所述多个二进制文件呈现给所述发起源。
根据本发明的另一个方面,提供一种下载目标二进制文件的方法和系统,包括如下步骤:生成索引图数据库,所述索引图数据库包含有多个二进制文件的文件URI以及使用保证计算结果唯一性的算法计算出的与所述多个二进制文件对应的文件内容签名;所述内容签名与所述文件URI具有关联关系,如果页面URI中包含文件URI,则还包括页面URI和文件URI的关联关系;接收来自发起源的针对目标二进制文件的下载查询,其中所述目标二进制文件在所述索引图数据库内链接至对应的内容签名,且所述对应的内容签名链接至多个具有相同内容签名的二进制文件URL;从所述多个文件URL下载所述目标二进制文件的多个部分;在发起源的机器内整合所述目标二进制文件的所述多个部分以获得完整的目标二进制文件。
本发明的一个优选实施例中,提供一种验证所述下载的二进制文件的完整性的方法和系统,另一个优选实施例中,本发明提供一种再下载和恢复下载的目标二进制文件的错误部分的方法和系统。
附图说明
以下附图组成说明书的一部分,对本发明的实施例给出说明,并与对实施例的描述一起解释本发明。
图1是使用本发明的索引和搜索技术的四层COINS系统的示意图;
图2是本发明索引图的一个示例,特别是两个多媒体文件有着相同的内容的示例图;
图3-1、3-2和3-3是遍历本发明索引图的第一级搜索过程的示意图;
图4-1和4-2是遍历本发明索引图的第二级搜索过程的示意图;
图5是本发明的索引和搜索方法在端到服务器和端(P2SP)内容传递网络(CDN)下载引擎领域的应用示意图。
具体实施方式
下面结合附图对本发明进行具体的描述。但这些具体描述不是对本发明的限制。相反,其只是用于解释本发明。
系统结构
图1是总体系统的示意图,其中包括四层:索引层101、搜索层102、排序层103和应用层,该应用层又包括二进制文件搜索引擎104和下载引擎105。本申请中所使用的术语“二进制文件”包括多媒体文件,例如数字图片、MP3文件、数字视频文件和其他音频和视频文件。所述二进制文件还包含其他文件,例如可执行文件和压缩文件(如RAR文件和Zip文件)。索引层101为底层,它对由搜索蜘蛛获取的网页在该层中进行分析,并对该网页内的二进制文件的URL以及周围语境(context)的文本进行检索和索引。然后,在该层中建立索引图和语境索引映射图。第二层是搜索层102,该层提供隐式搜索(implicitsearch)和显式搜索(explicit search)两种服务。COINS搜索即为遍历COINS索引图的过程。第三层为排序层103,能通过加权属性和内容相关性对搜索结果进行排序。最后,第四层基于COINS包括两个应用:COINS二进制文件搜索引擎104和下载引擎105。
COINS技术是本发明的核心,其提供一种通过内容或数字签名来索引和搜索因特网上的二进制文件(例如可执行文件和多媒体文件)的模型。本节首先介绍内容签名,然后集中讨论索引层、搜索层和排序层的设计,最后解释COINS多媒体文件搜索引擎和下载引擎。
内容签名
内容签名用于标识COINS索引中的文件的唯一性。如果两个文件具有相同的内容签名,即使该两个文件存放在两个不同的URL下,这两个文件也将被作为相同文件来处理。这一点对搜索和下载因特网上包括有不同多媒体文件例如图片、MP3和音频/视频的二进制文件来说非常重要。例如,一张图片有时可能出现在不同的网页上,具有不同的名称不同的描述。然而,传统的搜索引擎将这种情况视为不同的图片,而本发明可正确地将其视为相同的图片。因此,本发明可用于明显地提高下载速度,同时提高搜索结果以及排序的精确性和相关性。
内容签名计算算法
实际用于计算内容签名的算法可根据执行者的选择而不同。唯一需要注意的是,要使用能保证每个计算结果的唯一性的算法。本发明可以采用各种算法来计算内容签名,例如戴维斯-迈耶(Davies-Meyer)哈希函数。其中,可直接使用、或经过用户化后使用“安全内容哈希”方法来计算二进制文件的内容签名。这种方法又称为“安全哈希算法”(SHA)。
安全哈希算法SHA-1用于计算消息或数据文件的压缩形式。当输入任何长度小于264位的消息时,SHA-1生成160位的输出,称为消息摘要。然后将该消息摘要输入签名算法,由该签名算法生成或验证该消息的签名。
SHA-1被称为是安全的,是因为该算法不可能找到对应给定消息摘要的消息,或不可能找到生成相同消息摘要的两个消息。
关于详细的计算介绍,请参考因特网RFC 3174,其可以从链接获得:http://www.faqs.org/rfcs/rfc3 174.html。
生成内容签名的方法
二进制文件一般都很大。因此,如果整个文件需要由SHA-1算法进行计算以生成内容签名并将其传递给服务器,将需要占用大量的资源。一种改进方法是将该文件分割成每个大小为256K(或其他大小)的N个片段(最后一个片段可能没有256K),并从每个片段中取样。例如,从一个片段中提取的样本可以是该片段的开始部分,也可以是该片段的结尾部分。有些时候,提取的样本可以是该片段的开始部分和结尾部分的结合。
取样后,本发明可基于经SHA-1算出的样本而计算片段内容签名。[mx8]所述片段内容签名可链接在一起表示源文件的签名。但是,缺点是签名通常会比较长(例如,假设每个片段ID为20字节,1GB的文件的签名将为20字节*4000=80KB)。因此,将在客户端与服务器之间占用大量的计算资源,包括网络资源、CPU资源、内存以及存储器资源,以用于执行内容签名相关计算,例如内容签名的完整性校验过程中的计算。
本发明介绍了一种明显减少所需的计算资源且不会影响签名的准确性的新方法。代替将片段ID链接在一起,本发明再次使用SHA-1算法基于这些片段ID计算出签名。然后将这一签名用作内容签名。使用这种方法的好处是增加了标识将要搜索或下载的文件的效率,并同时减少签名的大小,以及减少了需要的计算资源,特别是减少了网络流量。
COINS索引
COINS索引包括统一资源标识符(URI)索引图和语境索引映射图。
COINS URI索引图
该索引图包含有几种类型的元素,一般用于描述和标识二进制文件,包括内容签名、页面URI和文件URI。后两个元素又称为文件的主要识别信息。此外,二进制文件还可以有其他类型的识别信息,包括但不限于周围的语境文本例如锚文本(anchor text)和描述文本,以及文件URI属性例如文件大小和文件协议等。这些定义为文件的次要识别信息。主要识别信息和次要识别信息一起定义为文件识别信息。
本申请中,符号(P)用于表示页面URI,(F)用于表示文件URI,(C)用于表示内容签名。由于“统一资源定位”(URL)的概念是“URI”的子集,因而页面URI的一个示例便是页面URL,文件RUI的一个示例便是文件URL。(P)和(F)之间存在多对多的映射关系。“多对多”是指多个文件到多个页面之间的内部链接,反之亦然。
此外,定义以下条件:
理论1:如果其对应的(C)相同,任何两个不同的(F)指向相同的文件。
理论2:任何(F)可从多个(P)引出,同时任何(P)可指向多个(F)。
索引原理:基于索引文本的传统技术的输出是关键字列表,它指向具有该关键字的网页。不同地是,COINS索引的输出是包含(P)、(F)和(C)的三维图。(P)和(F)构成用于遍历搜索索引图的主要二维图,(C)位于第三维,与(F)有链接。
索引方法:搜索蜘蛛程序通过分析(P)来扫描因特网,(P)是通过输入的源网址以及从源网址递归的引用网址找出。当搜索蜘蛛程序发现一个合适的目标二进制文件(F)时,计算其(C)。如果(P)中含有(F),增加一个从(P)到(F)的链接。同样地,如果两个文件生成相同的(C),增加从两个(F)到(C)的两个链接,尽管这两个(F)的文件名和地址可能完全不同。因此,便可以建立3-D索引图数据库,并且将出现的多对多关系按照上述定义的条件在该数据库中表示出来。
图表:建立索引图后,理解其如何用于查找想要的二进制文件很重要。图2所示为索引图的一种可能形式。如图所示,一个(F)可被多个(P)引用。例如,F3被P1、P3、P4和P5引用。同时,一组(F)可来自一个(P),例如F1、F2和F3均来自P1。最后,如图中所示,有两个(F)即F5和F8指向位于第三维的一个(C2)。这表示位于F5和F8的文件具有完全相同的内容。也就是说,F5和F8指向相同的文件。
语境索引映射图
语境是一组与关键字相关的语言,用于描述一个文件。对于具有相同(C)的文件,他们的语境可以合并或相结合。因此便可能获得具有相同(C)的(F)的列表与一组关键字之间的映射关系。
此外,关键字在语境中出现的次数被记录下来。当将两个语境合并时,如果该关键字在两个语境中都有出现,则将给定关键字对应的在两个语境中出现的次数相加。因此,关键词结果集如下:{关键词1*次数1,…,关键词i*次数i}。这样的话,便可以建立映射关系列表,每个映射与以下表示类似:
{(F1),…,(Fi)}→(C)→{关键词1*次数1,…,关键词i*次数i}
执行以上步骤后,进行反向处理以生成每个关键字和(C)列表之间的新的映射关系如下:
关键字i→{(C1)*次数1,…,(Ci)*次数i}
…,其中每个(C)还映射至(F)列表
结果,搜索关键字“关键字i”生成多个(C),其中每个(C)与多个(F)相关联。更重要的是,通过遍历该索引图,可以找到更多相关的(F)。
COINS搜索
搜索二进制文件可分为显式搜索和隐式搜索。显式搜索从用户界面通过自动生成的关键字或者终端用户输入的关键字来触发(更像传统搜索引擎的搜索)。隐式搜索由一个事件触发,例如从下载引擎应用程序下载文件。本发明使用的搜索查询可以是关键字或文件URI。在隐式搜索和显式搜索这两种搜索中,搜索查询都可以是关键字或者文件URI。
搜索推论:当从因特网显式地或隐式地搜索任何(F)时,对COINS索引图执行遍历可生成相当大量的搜索结果。这些结果一般包含有嵌入(P)内的多种商业逻辑。该商业逻辑可以是瑞奇马丁新发行的专辑或拉丁男歌手的MP3文件的汇集。
定义:COINS搜索,是指为搜索某一特定二进制文件而进行的遍历索引图的过程[mx9]。
为了开始所述搜索即遍历过程,深度优先(DFS)或广度优先(BFS)搜索算法皆可被用于遍历索引图。DFS和BFS是以系统的方式浏览索引图的有效方法。这两种方法从定向图中的一个节点v(图中的任意一个节点)开始,并访问从节点v可以到达的所有节点。这两种方法的区别在于其访问节点的顺序。
DFS首先从最近访问之节点的边界(edge)进行查找,也就是说,DFS首先尽可能的往深度方向查找。
BFS按源节点被访问的顺序查找其边界。它首先查找当前节点所有边界,然后访问下一个节点。
[mx10]遍历将生成(F)的列表。所述遍历的步骤可直观化为如下:
1.搜索目标二进制文件(F4)的搜索查询被输入系统。此搜索查询可来自任一发起源,例如终端用户/客户端,或下载引擎生成的计算机命令,或通过其他合适的方式产生。为启动所述搜索过程,反向引用三个(P):(P2)、(P4)和(P6)。结果,根据反向引用的(P2)、(P4)和(P6),可以获得额外的四个(F),标识为(F2)、(F3)、(F6)和(F8)。这在图3-1、3-2和3-3中示出。第一步中,该组(P)的深度为1。
2.对于从前一步骤中获得的四个(F)中的每一个,执行相同的反向查找以获得另一组(P):(P1)、(P3)和(P5)。然后可以进一步获得一组三个(F):(F1)、(F5)和(F7)。这在图4-1和4-2中示出。第二步中,该组(P)的深度为2。
3.通过递归,可对整个索引图进行遍历直至遇到中止条件。该中止条件包括但不限于:
*遍历的深度数,
*汇集的(F)的总数量,
*遍历的超时,
*访问的(P)的数量。
4.为了避免索引图遍历的无止尽的循环,可忽略对较高深度级实体的引用。换句话说,步骤2中不会访问(P2)、(P4)和(P6),因为其深度为1,已经在第一层的遍历中被访问过了。[0]
COINS排序
搜索过程完成后,一组二进制文件被呈现给终端用户。呈现的二进制文件包括与目标二进制文件相同的文件,或者与目标二进制文件不同但通过其共享的共用商业逻辑或其他文件属性与目标二进制文件相关的文件。
通常情况下,从索引和搜索过程获得的结果还需要进一步进行排序和分类,以便于该搜索结果更有用。因此,作为本发明的一个实施例,还需要根据几个对象模型对搜索结果进行评估和排序。
对象模型:以下关键信息将在对象模型[mx11]中被存储,以增强排序结果以及实现增值商业逻辑。
·(P)将存储访问次数、引用次数、实时服务器或对等带宽、在线状态等。
·(F)将存储引用期、访问次数、源、源状态(即带宽、在线等)等。
通过加权属性排序(C)列表或源(F)
加权属性可在各种引擎中进行定制。具体来说,在下载引擎中,加权属性可基于以下确定:
*文件平均下载速度
*文件下载次数
*可用资源数量
*文件大小
因此,如果下载更快并且更流行的话,该(C)可以得到更高的排序。
通过内容相关性排序(C)列表或源(F)
通过内容相关性排序(C)列表主要基于相关的关键字“次数”值。例如,使用关键字“Hello World”搜索时,在语境索引映射表内具有如下关系:
“Hello”→{(C1)*50,(C2)*25}
“World”→{(C2)*30,(C3)*17}
然后,生成的(C)的排序组为{(C2),(C1),(C3)},因为(C)的对应次数组为{(25+30),50,17}。
(F)的访问次数
将访问次数作为排序规则之一,是本发明的首创。访问次数指被终端用户访问的总数量。但是,如果(Fi)和(Fj)指向同一(C),则认为(Fi)或(Fj)的访问次数为Count(Fi)和Count(Fj)的总和。
最后值得指出的是,这种策略也可应用于一般的搜索引擎。
(F)列表的排序
列表(F)的排序是(F)的加权属性的函数。对于搜索结果列表中的每个(F),可计算出一个排序值。排序计算应该掌握以下这些事实:
1)搜索深度级:level(n)(F)没有level(n-1)(F)的相关性高;
2)从其包含的实体的引用次数:次数越大,该(F)越流行,因此终端用户越感兴趣。在不止一个(F)映射至同一个(C)的情况下,每个(F)的引用次数是所有(F)的引用次数的总和。例如,如果
a)(F1)→(C)且(F2)→(C),以及
b)RC((F1))=10且RC((F2))=15
c)则,FRC(F1‖F2)=RC((F1))+RC((R2))=25
d)同样,如果(F1)→(C1),(F2)→(C2),且(C1)<>(C2),则FRC(F1)=
RC(F1)且FRC(F2)=RC(F2)
其中RC指引用次数的函数,FRC指最后引用次数的函数,(C1)<>(C2)表示C1不等于C2。
3)来自终端用户的累积访问次数:访问次数越多,该(F)对于终端用户来说越流行。
4)(F)的类型:相同类型(可能有不同的扩展名),例如音乐文件,意味着更大的相关性。
5)其包含的实体的访问次数:(P)包含的实体得到的访问越多,(F)对于终端用户来说越流行。
6)自定义挂钩(Custom Hook):为应用程序提供入口点以输入与应用程序相关的属性。
注意,上述每个属性具有相关联的系数,该系数受实时调整的影响。
COINS搜索引擎和下载引擎
以下将详细介绍COINS索引和搜索方法用于因特网搜索和文件下载的实际系统。以下结合COINS索引和搜索过程介绍了两种方法和系统。一个是针对二进制内容的基于COINS的搜索引擎,另一个是可优化内容传递的基于COINS的下载引擎。
COINS搜索引擎
二进制搜索引擎提供搜索二进制文件例如可执行文件和多媒体文件的服务,不仅可以从因特网搜索,还可以从P2SP网络搜索。此处使用的术语“P2SP”指端对服务器和端计算方法。换言之,与其他的P2P网络相比,P2SP网络包括有服务器也包括有对等机。以下是对COINS搜索引擎如何工作以及如何利用COINS的不同部分建立该搜索引擎的详细描述。
1)搜索前,先通过搜索蜘蛛和终端用户的日常使用建立包括有URI索引图和语境索引映射图的COINS索引数据库。
2)搜索过程中,基于关键字分割策略分析用户的输入,以便生成有意义的一组关键字。
3)针对每个关键字,搜索该语境映射图以获取一组(C)。此步中使用的语境映射图是在COINS索引过程中生成的第二映射:
关键字i→{(C1)*次数1,…,(Ci)*次数i}
4)根据次数信息对该组(C)进行排序。
5)针对步骤3中得到的每个(C),从在COINS索引过程中生成的第一映射图中导出一组源(F):
{(F1),...,(Fi)})→(C)→{关键字1*次数1,...,关键字i*次数i}
6)在步骤5中得到的(F)上执行COINS搜索,以获得一组最终的(F)。
COINS下载引擎
下载引擎引入了P2SP的概念。如果可从多个源下载某一内容,便可以明显地提高数据获取速度(通过并行地从多个计算较快的源获取数据的各个部分)以及数据访问的稳定性(通过避免网络忙和某些时候的无效链接)。所述源可以是因特网服务器或对等机或两者都有。
执行该操作的关键是获得用于获取数据的目标因特网服务器和对等机的列表。这可以通过COINS解决。
内容传递推论:当尝试从因特网获取任何(F)时,内容传递系统可通过COINS智能地选择除了提供该(F)的原始源之外的任何源来下载(F),因为已经确定位于这些源的内容是相同的,这是由相同的内容签名来保证的。
以下是对COINS下载引擎如何工作的描述:
1)在终端用户的机器内安装客户端软件。
2)下载前或下载过程中,建立COINS URI索引图。
3)客户端发送下载目标二进制文件的下载请求给服务器,由服务器使用COINS搜索能提供将要下载的内容的源。一组因特网服务器和对等机以URL的形式被返回,尽管该URL可能具有不同的因特网协议、不同的路径和不同的文件名,但它们都能提供将要下载的内容。在COINS搜索索引图数据库的过程中,在索引数据库中查找目标二进制文件。如果数据库中已包括有该目标二进制文件的文件URI,则将该目标二进制文件的内容签名链接至所述搜索查询。如果数据库中未含有该目标二进制文件的文件URI,则计算该目标二进制文件的内容签名并存储在数据库中。这一内容签名用于链接至数据库中具有相同内容签名的其他文件URI。
4)客户端继续以并行地方式从不同的源下载文件的各个部分,该不同的源包括不同的服务器和不同的对等机。成功下载后,客户端将数据的各个部分结合成一个文件。
5)客户端通过比较从刚下载的数据中计算出的内容签名与存储在服务器中的内容签名来执行文件完整性验证。如果内容签名相同,则下载结束。
6)如果在上一步中内容签名不匹配,客户端需要有效地识别出被破坏的片段。一个解决方法是循序地比较已下载的数据与存储在服务器内的数据的片段ID。然而,这一方法对于容量大的文件来说占用的资源相当大。例如,假设每个片段为256K且每个片段ID为20字节,1GB的游戏文件将有4000个片段ID,这样的话,4000次的片段ID比较将产生服务器内的80K带宽占用。相反,以下将介绍一种计算有效的方法,称为“在下载引擎内使用内容签名的有限分治算法(The limited Divide-and-Conquer Algorithms with ContentSignature in Downloading Engine)”。
该算法将片段ID分割成两部分A和B,并使用相同的内容签名计算方法计算每一部分的签名。然后在客户端和服务器之间比较签名A和B。如果签名A匹配,则表示A部分下载正确。但是如果不匹配,则将A部分再分割成两部分,并重复上述处理。
如果被破坏的片段数量大且随机的分布在一个文件内,则使用上述分治算法的代价也很大。因此,本方法设置可以查找的最大深度。例如,最大为3的深度只需要7次ID比较,在服务器内占用140字节的带宽,便可以找出任何被破坏的部分。这种情况下,每个部分是该文件的1/8。
7)客户端设法下载被破坏的部分,该部分的签名需要在下载后进行校验。
为了更好的理解下载引擎应用,分析以下给出的一例子:
假设Red Hat Linux发布其9.1版本的操作系统后,许多内容(镜像)站点都存储有该新版本操作系统的副本,以便服务其成员。同时,多个Linux终端用户开始设法(快速)下载。接近100MB的下载使得一些知名站点变得混乱,导致服务器极度繁忙,因此出现终端用户全球等待的现象。
作为示例,图5中由网络爬虫或搜索蜘蛛程序建立的索引图显示,标识为(FL)的待下载的Linux新版本实际上可从标识为(FL)、(F3)和(F7)的三个服务器源以及标识为(F12)的一个对等源获得。
源的实际格式可根据不同的实现而不同。此处,服务器源定义为:
(FL)为http://www.redhatlinux.com/releases/download/linux9-2-1.zip
(F3)为tip://218.105.114.254:3044/pub/software/top10/linux9-2-1.zip
(F7)为ftp://219.101.18.20/pub/linux/linux-latest.Zip同样,在一对等机上的该源定义为jxta://uri-334/linux-latest-9-2-1.zip。
请注意,(FL)和(F3)具有相同的文件名linux9-2-1.zip,而(F7)和(F12)具有不同的文件名。但是,由于他们的内容签名相同,他们都指向相同的文件。
结果,根据这种设计建立的下载应用程序可选择从不止一个源中获取该新发布的Linux操作系统软件的各个部分。实际上,这一下载策略将服务器带宽的瓶颈转移至下载客户端。此外,服务器单点传输失败的情况下(因服务器忙或与该服务器的连接很差),客户端仍然可从其他源获取该软件。
简而言之,上述的智能和自动路由使用核心索引图,并且该过程对终端用户来说是透明的。可以建立全局负载平衡器来有效地减少任何内容服务器在遇到无法预料或预料之中的流量拥塞时传输失败的可能性。
本申请中引用的所有专利、公开物、网站内容和其他资料和文件,无论是印刷或电子格式,都作为本申请的一部分。
以上对本发明的具体实施例的描述仅出于解释和说明的目的,不是将本发明穷尽或限制为上述公开的具体形式。根据上述内容的教导,还可以做出各种修改和变更。可知,本发明的范围不受这些具体描述的限制,而由本申请的权利要求来限定。上述说明、示例和数据提供了对实施本发明的完整描述。由于还可以对本发明提出各种实施例而不脱离本发明的精神和范围,因此本发明的范围取决于权利要求及其等效替换。
Claims (40)
1、一种生成二进制文件索引图数据库的方法,其特征在于,包括如下步骤:
a)获取网络中的目标二进制文件的列表,其内包含有目标二进制文件的文件识别信息,所述文件识别信息包括页面URI和文件URI;
b)使用保证计算结果唯一性的算法计算所述目标二进制文件的内容签名,并建立所述目标二进制文件的文件URI和内容签名的链接关系;如果页面URI中包含文件URI,则建立页面URI和文件URI的链接关系;
c)存储所述内容签名、页面URI、文件URI以及所述文件URI和内容签名的链接关系、所述页面URI和文件URI的链接关系,从而组成所述二进制文件的索引图数据库。
2、根据权利要求1所述的方法,其特征在于,进一步包括如下步骤:
d)识别每个所述目标二进制文件相关联的多个关键字;
e)将具有相同内容签名的目标二进制文件的多个关键字合并为关键字集合,并建立所述内容签名与所述关键字集合的链接关系。
3、根据权利要求2所述的方法,其特征在于,进一步包括:对所述关键字集合内的关键字进行排序,使得具有最高出现频率的关键字首先与所述内容签名相关联。
4、根据权利要求1所述的方法,其特征在于,所述文件识别信息还包括锚文本、描述文本、文件大小和文件协议。
5、根据权利要求1至4其中之一所述的方法,其特征在于,所述页面URI为页面URL,且所述文件URI为文件URL。
6、根据权利要求1所述的方法,其特征在于,所述用于计算内容签名的算法包括SHA-1算法。
7、根据权利要求1所述的方法,其特征在于,在所述子步骤c)中,所述内容签名及文件识别信息存储在多个计算机上。
8、根据权利要求7所述的方法,其特征在于,所述多个计算机包括一个或多个中心服务器计算机和一个或多个客户端计算机。
9、一种搜索因特网上的二进制文件的方法,其特征在于,包括如下步骤:
a)接收来自发起源的针对目标二进制文件的搜索查询;所述搜索查询包括关键字或者文件URI;
b)依据搜索查询在索引图数据库中找出多个内容签名,以及与所述内容签名相关联的多个二进制文件的文件URI;所述索引图数据库包括文件URI、内容签名、关键字、关键字与内容签名的关联关系以及文件URI与内容签名的关联关系,且所述内容签名是针对二进制文件采用保证计算结果唯一性算法计算得到的;
c)将与所述搜索查询相关的所述多个二进制文件呈现给所述发起源。
10、根据权利要求9所述的方法,其特征在于,如果所述索引图数据库中没有存储该文件URI,则进一步包括计算所述目标二进制文件的内容签名并将该内容签名与该文件URI存储在所述索引图数据库中的步骤。
11、根据权利要求9所述的方法,其特征在于,所述搜索查询在索引图数据库中找出多个内容签名以及与所述内容签名相链接的多个二进制文件的文件URI包括:基于关键字分割分析用户的搜索查询,生成一组关键字;
针对所述一组关键字中的每个关键字来搜索所述索引图数据库以获取一组内容签名;
针对所述获取的一组内容签名中的每个内容签名,从所述索引图数据库中获取一组文件URI。
12、根据权利要求11所述的方法,其特征在于,
如果页面URI中包含文件URI,则所述索引图数据库还包括页面URI、页面URI和文件URI之间的关联关系;以及,
针对所述获取的一组内容签名中的每个内容签名,从索引图数据库中获取一组文件URI包括:
针对所述生成的一组文件URI中的每一个文件URI,从所述索引图数据库中获取一组页面URI;
针对所获取的一组页面URI中的每一个页面URI,从所述索引图数据库中获取一组文件URI;
重复上述步骤,直到遇到中止条件。
13、根据权利要求12所述的方法,其特征在于,所述中止条件包括从以下条件中选择出的任意中止条件:
搜索索引图数据库的次数;
所收集的文件URI的总数量;
搜索索引图数据库超时;
访问的页面URI数量。
14、根据权利要求9所述的方法,其特征在于,所述发起源为终端用户传入的输入。
15、根据权利要求9所述的方法,其特征在于,所述发起源为计算机生成的命令。
16、根据权利要求9所述的方法,其特征在于,所述步骤c)进一步包括对所述多个二进制文件排序的步骤。
17、根据权利要求16所述的方法,其特征在于,所述排序的步骤是根据预定因素进行的,所述预定因素包括文件内容相关性或文件加权平均值。
18、根据权利要求17所述的方法,其特征在于,所述文件的文件加权平均值包括至少以下一种:文件平均下载速度、文件下载次数、可用源的数量或文件大小。
19、根据权利要求17所述的方法,其特征在于,所述文件内容相关性包括至少以下一种:文件的访问次数、引用次数或文件类型。
20、根据权利要求12至19其中之一所述的方法,其特征在于,所述页面URI为页面URL,且所述文件URI为文件URL。
21、一种下载目标二进制文件的方法,其特征在于,包括如下步骤:
a)生成索引图数据库,所述索引图数据库包括文件URI、内容签名、关键字、关键字与内容签名的关联关系以及文件URI与内容签名的关联关系,且所述内容签名是针对二进制文件采用保证计算结果唯一性算法计算得到的;
b)接收来自发起源的针对目标二进制文件的下载查询,在索引图数据库中找出该目标二进制文件的内容签名,以及与所述内容签名相链接的多个二进制文件的文件URI;
c)从所述多个二进制文件的文件URI下载所述目标二进制文件的多个部分;
d)在发起源的机器内整合所述目标二进制文件的所述多个部分,以获得完整的目标二进制文件。
22、根据权利要求21所述的方法,其特征在于,该方法进一步包括通过比较所述发起源机器内整合的所述目标二进制文件的内容签名与存储在索引图数据库中的内容签名来验证所述下载的目标二进制文件的完整性的步骤。
23、根据权利要求22所述的方法,其特征在于,该方法进一步包括当所述比较不匹配时,再下载和恢复所述已下载的目标二进制文件中的错误部分的步骤。
24、根据权利要求21至23其中之一所述的方法,其特征在于,所述文件URI为文件URL。
25、一种生成二进制文件索引图数据库的系统,其特征在于,包括:
a)获取网络中的目标二进制文件列表的装置,所述列表内包含有目标二进制的文件识别信息,所述文件识别信息包括页面URI和文件URI;
b)使用保证计算结果唯一性的算法计算所述二进制文件的内容签名,并建立所述二进制文件的文件URI和内容签名的链接关系;如果页面URI中包含文件URI,则建立页面URI和文件URI的链接关系的装置;
c)存储所述内容签名、页面URI、文件URI以及所述文件URI和内容签名的链接关系、所述页面URI和文件URI的链接关系,从而组成所述二进制文件索引图数据库的装置。
26、根据权利要求25所述的系统,其特征在于,进一步包括:
识别每个所述目标二进制文件相关联的多个关键字的装置;以及
将具有相同内容签名的目标二进制文件的多个关键字合并为关键字集合,并建立所述内容签名与所述关键字集合的链接关系的装置。
27、根据权利要求25所述的系统,其特征在于,进一步包括:对所述关键字集合内的关键字进行排序的装置,使得具有最高出现频率的关键字首先与所述二进制文件内容签名相关联。
28、根据权利要求25至27其中之一所述的系统,其特征在于,所述页面URI为页面URL,且所述文件URI为文件URL。
29、一种搜索因特网上的二进制文件的系统,其特征在于,包括:
a)接收来自发起源的针对目标二进制文件的搜索查询的装置,所述搜索查询包括关键字或者文件URI;
b)依据搜索查询在索引图数据库中找出多个内容签名以及与所述内容签名相关联的多个二进制文件的文件URI的装置,所述索引图数据库包括文件URI、内容签名、关键字、关键字与内容签名的关联关系以及文件URI与内容签名的关联关系,所述内容签名是针对二进制文件采用保证计算结果唯一性算法计算得到的;
c)将与所述搜索查询相关的所述多个二进制文件呈现给所述发起源的装置。
30、根据权利要求29所述的系统,其特征在于,所述依据搜索查询在索引图数据库中找出多个内容签名以及与所述内容签名相链接的多个二进制文件的文件URI的装置包括:
基于关键字分割分析用户的搜索查询,生成一组关键字的装置;
针对所述一组关键字中的每个关键字来搜索所述索引图数据库以获取一组内容签名的装置;
针对所述获取的一组内容签名中的每个内容签名,从所述索引图数据库中获取一组文件URI的装置。
31、根据权利要求29所述的系统,其特征在于,
如果页面URI中包含文件URI,则所述索引图数据库还包括页面URI及页面URI和文件URI之间的关联关系;以及,
针对所述获取的一组内容签名中的每个内容签名,从索引图数据库中获取一组文件URI的装置包括:
针对所述生成的一组文件URI中的每一个文件URI,从所述索引图数据库中获取一组页面URI的装置;
针对所获取的一组页面URI中的每一个页面URI,从所述索引图数据库中获取一组文件URI的装置。
32、根据权利要求31所述的系统,其特征在于,所述页面URI为页面URL,且所述文件URI为文件URL。
33、一种下载目标二进制文件的系统,其特征在于,包括:
a)生成索引图数据库的装置,该索引图数据库包括文件URI、内容签名、关键字、关键字与内容签名的关联关系以及文件URI与内容签名的关联关系,且所述内容签名是针对二进制文件采用保证计算结果唯一性算法计算得到的;
b)接收来自发起源的针对目标二进制文件的下载查询的装置,在索引图数据库中找出该目标二进制文件的内容签名,以及与所述内容签名相链接的多个二进制文件的文件URI;
c)从所述多个二进制文件的文件URI下载所述目标二进制文件的多个部分的装置;
d)在发起源的机器内整合所述目标二进制文件的所述多个部分以获得完整的目标二进制文件的装置。
34、根据权利要求33所述的系统,其特征在于,该系统进一步包括通过比较在发起源的机器内整合的所述目标二进制文件的内容签名与存储在索引图数据库中的内容签名来验证所述下载的目标二进制文件的完整性的装置。
35、根据权利要求34所述的系统,其特征在于,该系统进一步包括恢复所述已下载的目标二进制文件中的错误部分的装置。
36、根据权利要求33所述的系统,其特征在于,所述生成索引图数据库的装置包括:
a)获取网络中的目标二进制文件列表的装置,所述列表内包含有目标二进制的文件识别信息,所述文件识别信息包括文件URI;
b)使用保证计算结果唯一性的算法计算所述二进制文件的内容签名,并建立所述二进制文件的文件URI和内容签名的关联关系的装置;
c)存储所述内容签名、文件URI以及所述文件URI和内容签名的关联关系,从而组成所述二进制文件索引图数据库的装置。
37、根据权利要求36所述的系统,其特征在于,所述生成索引图数据库的装置还包括:
a)识别每个所述二进制文件相关联的多个关键字的装置;
b)将具有相同内容签名的目标二进制文件的多个关键字合并为关键字集合,并建立所述内容签名与所述关键字集合的关联关系的装置。
38、根据权利要求33所述的系统,其特征在于,所述系统还包括:
a)将所述二进制文件分割为大小合适的多个片段的装置;
b)使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名的装置;
c)基于所述多个片段内容签名生成所述文件内容签名的装置。
39、根据权利要求33所述的系统,其特征在于,所述系统还包括:
a)将所述二进制文件分割为大小合适的多个片段的装置;
b)从每个片段中提取多个样本的装置;
c)使用保证计算结果唯一性的算法利用所述片段的多个样本来计算所述每个片段的内容签名,从而获得多个片段内容签名的装置;
d)基于所述多个片段内容签名生成所述文件内容签名的装置。
40、根据权利要求33至39其中之一所述的系统,其特征在于,所述文件URI为文件URL。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US50729203P | 2003-09-29 | 2003-09-29 | |
US60/507,292 | 2003-09-29 | ||
US10/955,008 | 2004-09-28 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101349654A Division CN101408881B (zh) | 2004-09-29 | 2004-09-29 | 生成二进制文件内容签名的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1890662A CN1890662A (zh) | 2007-01-03 |
CN100524300C true CN100524300C (zh) | 2009-08-05 |
Family
ID=37579167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800341994A Active CN100524300C (zh) | 2003-09-29 | 2004-09-29 | 内容定向的索引和搜索方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100524300C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101166190B (zh) * | 2007-09-20 | 2010-10-13 | 腾讯科技(深圳)有限公司 | 影音文件的多源下载方法及装置 |
CN101179347B (zh) * | 2007-12-21 | 2010-11-24 | 深圳市迅雷网络技术有限公司 | 一种提供文本文件信息的方法、系统及服务端 |
CN101477527B (zh) * | 2008-12-30 | 2011-01-19 | 深圳市迅雷网络技术有限公司 | 一种检索多媒体资源的方法及装置 |
CN102164186B (zh) * | 2011-05-31 | 2013-10-30 | 互动在线(北京)科技有限公司 | 一种实现云搜索服务的方法及系统 |
CN102254012B (zh) * | 2011-07-19 | 2012-11-14 | 北京大学 | 一种基于外存的图数据存储方法及子图查询方法 |
WO2013032944A1 (en) * | 2011-08-26 | 2013-03-07 | Google Inc. | System and method for presenting a video stream |
CN103970871B (zh) * | 2014-05-12 | 2017-06-16 | 华中科技大学 | 存储系统中基于溯源信息的文件元数据查询方法与系统 |
CN105653572A (zh) * | 2015-08-20 | 2016-06-08 | 乐视网信息技术(北京)股份有限公司 | 一种资源的处理方法及装置 |
CN113535710B (zh) * | 2020-04-22 | 2023-12-15 | 中山大学 | 一种搜索方法、装置、终端设备及存储介质 |
-
2004
- 2004-09-29 CN CNB2004800341994A patent/CN100524300C/zh active Active
Non-Patent Citations (6)
Title |
---|
A system for region-based image indexing ane retrieval. Chad Carson,Megan Thomas,Serge Becongiie,TosephM.Hellerstein,Jitendra Malik.the Third Int. Conf. on Visual Information Systems. 1999 |
A system for region-based image indexing ane retrieval. Chad Carson,Megan Thomas,Serge Becongiie,TosephM.Hellerstein,Jitendra Malik.the Third Int. Conf. on Visual Information Systems. 1999 * |
Image retrieval using color and shape. Anil K. Jain,Aditya Vailaya.Pattern Recognition. 1996 |
Image retrieval using color and shape. Anil K. Jain,Aditya Vailaya.Pattern Recognition. 1996 * |
Supporting Similarity Queries in MARS. Michael Ortega,Yong Rui,KaushikChakrabarti,SharedMechrota,Thomas.S.Huang.ACM Multimedia 97. 1997 |
System for Detecting Undesired Alteration of Software. Arnold, WC Chess, DMArnold, WC Chess, DM.IBM TECHNICAL DISCLOSURE BULLETIN. 1990 |
Also Published As
Publication number | Publication date |
---|---|
CN1890662A (zh) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882139B2 (en) | Content oriented index and search method and system | |
KR101108329B1 (ko) | 단일 질의에 대한 다수의 검색 결과 세트들을 표시하는 시스템 및 방법 | |
US6311194B1 (en) | System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising | |
US7290061B2 (en) | System and method for internet content collaboration | |
US8117215B2 (en) | Distributing content indices | |
TWI463337B (zh) | 用於實施於跨多搜尋引擎之結盟搜尋之方法及系統 | |
US7171415B2 (en) | Distributed information discovery through searching selected registered information providers | |
US20030088639A1 (en) | Method and an apparatus for transforming content from one markup to another markup language non-intrusively using a server load balancer and a reverse proxy transcoding engine | |
US20020010709A1 (en) | Method and system for distilling content | |
US20050060287A1 (en) | System and method for automatic clustering, sub-clustering and cluster hierarchization of search results in cross-referenced databases using articulation nodes | |
US20030126120A1 (en) | System and method for multiple data sources to plug into a standardized interface for distributed deep search | |
CA2699653A1 (en) | Method and system for aligning ontologies using annotation exchange | |
CN102687138A (zh) | 搜索建议聚类和呈现 | |
KR20100075545A (ko) | 검색 결과 페이지에 인터랙티브 요소를 포함하는 시스템 및 그 방법 | |
CN106687949A (zh) | 本地应用的搜索结果 | |
CN101184091A (zh) | 一种确定相似文件的方法及装置 | |
CN100524300C (zh) | 内容定向的索引和搜索方法与系统 | |
CN1841377A (zh) | 爬寻数据库以找出信息 | |
Müller et al. | Fast retrieval of high-dimensional feature vectors in P2P networks using compact peer data summaries | |
CN101408881B (zh) | 生成二进制文件内容签名的方法及系统 | |
CN101727485A (zh) | 一种基于聚焦搜索的wsdl搜集方法 | |
Marinković et al. | A distributed catalog for digitized cultural heritage | |
Khurana et al. | Survey of techniques for deep web source selection and surfacing the hidden web content | |
Karanasos et al. | The ViP2P platform: XML views in P2P | |
JP3552665B2 (ja) | 関連指向検索サービス方法およびそのプログラムを記録した記録媒体 |
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 |