一种基于p2p网络实现全文检索系统的方法

文档序号:7687503阅读:160来源:国知局

专利名称::一种基于p2p网络实现全文检索系统的方法
技术领域
:本发明涉及与P2P网络相关的技术,特别地,涉及一种基于P2P网络下实现全文检索系统的方法。
背景技术
:基于P2P网络的全文检索系统相对于集中式全文检索系统具有成本低,可扩展性,容错性等优点。然而如何在P2P网络下,实现全文检索并定位目标资源是困难的。当前已知的P2P环境下的全文检索的解决方案可以分为两类1)基于无结构化P2P网络全文检索系统;2)基于DHT网络的P2P全文检索。其中,在第一种解决方案中,检索过程采用洪泛技术,即查询消息中包含一个整数值77Z,每个接收査询消息的节点向若干个邻居节点转发消息,同时将7T丄减去l;直到771=0,查询消息不再被继续转发。这个解决方案容易产生大量的查询消息跳转,从而导致网络拥塞。随着整个系统的节点数目增加,査询效率迅速降低。在第二种解决方案中,通过一个统一的哈希函数,査询目录信息被分布到DHT网络中的所有节点。任意给定查询关键字,査找索引的效率是O(/ogA0,W为节点的个数。尽管利用DHT网络能够提高查询的效率,但是节点的加入和退入会导致的查询目录维护开销,因而第二种方案不能适应于存在大量节点频繁加入或退出的网络。
发明内容本发明的目的在于针对现有的P2P全文检索系统普遍存在查询效率和性能不高、网络开销过大,以及在网络频繁波动下索引信息维护代价过高的不足。提供一种基于P2P网络实现全文检索系统的方法,不仅能提高査询的效率和性能,还能降低索引信息维护开销。本发明的目的是通过以下技术方案来实现的一种基于P2P网络实现全文检索系统的方法,包括以下步骤(1)基于内容分类将普通节点看作一个"大文件",这个"大文件"是由它所共享的文档集合并而成。利用文本分类技术将所有普通节点分成若干个组。每个组内所有普通结点连接同一个超级节点。普通节点按内容分组后,每个査询的结果集中在少数组中,这样可以减少查询消息的跳转次数。(2)构建组内査询目录超级节点收集普通节点发送的资源描述信息,并构建组内査询目录,用于将选择某些最优的普通节点来转发査询。(3)构建全局査询目录通过合并它的普通节点的资源描述,超级节点得到组内资源描述信息。超级节点将组内资源描述信息发布到由所有超级结点构成的DHT网络中。随着所有超级节点完成资源描述发布过程,全局查询目录也就构建完成。(4)两阶段检索过程某个普通节点发起査询,并将查询请求转发至它所连接的超级结点。利用全局查询目录,超级节点获得与查询关键词相关超级节点列表;收到查询请求的各个超级节点根据组内查询目录,向与查询关键词相关的普通节点转发査询。(5)查询目录维护在普通节点加入或退出时,相应的超级节点独立地在本地更新组内查询目录。对于全局查询目录,我们采用"生存时间"技术来保证全局査询目录的一致性和有效性,即对任意一个全局查询目录项,如果在TTL时间内没有被更新或确认,这个全局查询目录项将被删除。本发明与现有技术相比,具有的有益效果是不仅能提高查询的效果和效率,而且在网络频繁抖动情况下,有效控制全局查询目录维护开销。图1是一个基于无结构P2P网络全文检索方法的范例示意图;其中,白色圆圈代表发起查询的节点,灰色圆圈代表不包含查询结果的节点,黑色圆圈代表包含查询结果的节点,箭头表示查询消息;图2是一个基于DHT的P2P网络全文检索方法的范例示意图;图3是本系统采用的网络模型示意图;其中白色圆圈代表普通节点,黑色圆圈代表超级节点,黑色连线表示两端节点存在连接;图4是构建本地搜索目录的一个范例示意图;图5是构建全局搜索目录的一个范例示意图;图6是关键字査询过程的一个范例示意图。具体实施方式为使本系统的上述目的、特征、和优点能更明显易懂,下文特举一最佳实施例子,并配合附图,作详细说明如下。参照图3,其示出了本系统网络模型的一个例子。在图3中,所有普通节点依各自的内容进行归类。假定现有NS个超级节点,NP个普通节点,利用K-Means分类算法,将NP个普通节点按文档集内容分成NS个组。具体过程可以描述如下1)任意选取NS普通节点作为种子节点,分别连接一个超级节点,一个初始分组形成;2)其余普通节点计算和每个分组之间的"距离",选择"距离"最近的分组并加入。在这里,我们用Kullback-LeiblerDistance算法来衡量一个普通节点和一个分组的距离。卵,"log-(,/^)+非,c))/(lcl+W)其中P表示一个普通节点,c表示一个分组,t表示某个词,^"^表示词t在普通节点p中的词频。//(v)表示词t在分组c中的词频,kl或l川分别表示分组c的总词数和普通节点p的总词数。参照图4,其示出了一个构建组内查询目录和组内资源描述信息的范例。普通节点1、2向超级节点1发送资源描述信息。一个普通资源描述信息包括文档集中出现的所有词以及相对应的词频(PeerTermFreq)和文档频率(PeerDocFreq)。在本方法中,每个词所对应的词频是指该词在整个节点内所有文档中出现的次数总和。普通节点资源描述信息结构如下:<table>tableseeoriginaldocumentpage5</column></row><table>另外,普通节点资源描述信息还包括一些该节点内的统计信息,文档数j和所有文档中包含单词个数的总和(W『)。在图4中,超级节点1收到普通节点1和2的资源描述信息后,合并成组内资源描述信息并构建本地搜索目录。在超级节点上的本地搜索目录是基于普通节点的资源描述信息构建而得,其结构如下:<table>tableseeoriginaldocumentpage6</column></row><table>在超级节点上的组内资源描述信息是由本组内所有普通节点的资源描述合并而成,包括本组内中出现的所有词以及相对应的词频(SPTermFreq)和文档频率(SPDocFreq),其结构如下:_<table>tableseeoriginaldocumentpage6</column></row><table>超级节点SPs上的组内资源描述信息包含AT个资源描述项,其中wr表示SP/资源描述信息中词汇的大小。每个资源描述项的结构如下<table>tableseeoriginaldocumentpage6</column></row><table>请参考图5,每个资源描述项均被发布到Chord环上的某个超级节点。用一个共同的哈希函数对词进行哈希运算,以确定某个资源描述项被发布到哪个超级节点。另外,组内资源描述信息还包括整个组的统计信息文档数量(iVA即该组内所有普通节点包含的文档数量总和)、单词总和(w『,即该组内所有文档包含单词个数的总和,以及普通节点数量(w凡即该组内普通节点的个数)。我们可以通过对停用词"a"哈希运算,可以确定统计信息(i\,W『,iV尸)需要发布到哪个超级节点。在本方法中,两层查询目录的维护机制具体描述如下(a)当普通节点加入和退出时,它连接的超级节点立即更新组内査询目录和组内资源描述信息。所有超级节点周期性地将更新或确认消息发送到DHT网络中的相应节点,以确保全局査询目录的一致性和有效性。(b)当某个超级节点M加入Chord网络时,S尸向它的后继节点请求转移应当由S尸负责的那部分査询目录。当超级节点5P决定退出时,在离开之前,S尸需要将自己负责的査询目录转发给它的后继节点。如果5"户异常退出,由6P负责的那部分全局査询目录将丢失。其余超级节点在周期性发送更新或确认消息时,发现57>己离开,进而将丢失的资源描述信息重新发布在Chord网络中,也即重新构建丢失的全局查询目录。图6给出了P2P全文检索系统的关键词搜索过程一个示例。a)普通连接P发起査询请求q,并向它的超级节点SPi转发送査询请求q。SP,在DHT网络上査询到相关的超级节点集,SPList=(SP,,SP2,......},然后利用Kullback-Leiblerdivergence算法计算得出每个相关超级节点和q的相关度。SP1从SPList选择n个最相关的超级节点,分别转发査询q;<formula>formulaseeoriginaldocumentpage7</formula>其中f/(^S/V是词?在SP,中的词频,//",0是词Z在整个系统中的。卵,s/v,^i,G义M)fSiV,7V『(S/V,A^(^)均能在Chord中通过查询词f和"a"而获得。A是Dirichlet平滑因子。b)每个接收到q的超级节点SP,.(—1,2...n)根据组内查询目录得到相关的普通节点集,PList^P!,P2,……},然后利用Kullback-Leiblerdivergence算法计算得出每个相关普通节点和q的相关度。^画^(^)=/""n仇,卢e/画一同其中f/"/V是词f是Pi所有文档的词频,f/(i,SiV是词f是SPi所在的cluster内所有文档的词频。c/T/,/V在本地搜索目录能获得,M^/V,#『0",AT0iV能够在SPi自身的资源描述信息里获得。卢是Dirichlet平滑因子。SPj选择A个最相关的普通节点,分别转发査询q.c)每个接到q的普通节点?,</=1,2..上)基于本地的倒排索引查询,得到相关的文档,并向P,的超级节点返回文档(结果)信息。d)8,(/=1,2...)合并从普通节点返回的结果,将合并后的结果返回给SPe)SP,合并查询结果,并返回给普通节点P。査询过程结束。权利要求1.一种基于P2P网络实现全文检索系统的方法,其特征在于,包括以下步骤(1)基于内容分类将普通节点看作一个“大文件”,这个“大文件”是由它所共享的文档集合并而成。利用文本分类技术将所有普通节点分成若干个组。每个组内所有普通结点连接同一个超级节点。普通节点按内容分组后,每个查询的结果集中在少数组中,这样可以减少查询消息的跳转次数。(2)构建组内查询目录超级节点收集普通节点发送的资源描述信息,并构建组内查询目录,用于将选择某些最优的普通节点来转发查询。(3)构建全局查询目录通过合并它的普通节点的资源描述,超级节点得到组内资源描述信息。超级节点将组内资源描述信息发布到由所有超级结点构成的DHT网络中。随着所有超级节点完成资源描述发布过程,全局查询目录也就构建完成。(4)两阶段检索过程某个普通节点发起查询,并将查询请求转发至它所连接的超级结点。利用全局查询目录,超级节点获得与查询关键词相关超级节点列表;收到查询请求的各个超级节点根据组内查询目录,向与查询关键词相关的普通节点转发查询。(5)查询目录维护在普通节点加入或退出时,相应的超级节点独立地在本地更新组内查询目录。对于全局查询目录,我们采用“生存时间”技术来保证全局查询目录的一致性和有效性,即对任意一个全局查询目录项,如果在TTL时间内没有被更新或确认,这个全局查询目录项将被删除。全文摘要本发明公开了一种基于P2P网络实现全文检索系统的方法。本方法首先将所有普通节点根据各自包含的文档集的内容相似度进行分组,使得内容上相近或相似的普通节点连接同一个超级节点。其次,所有的超级节点组成结构化网络,用于维护“词→相关超级节点列表”的全局查询目录,并且每个超级节点独立维护“词→组内相关普通节点列表”的组内查询目录。本方法利用分层的网络模型和粗粒度的全局查询目录,使得这个P2P全文检索系统能够适应大量节点频繁加入或退出的情况,并且保证查询的性能和减少查询目录的维护代价。文档编号H04L29/08GK101272399SQ20081006139公开日2008年9月24日申请日期2008年4月25日优先权日2008年4月25日发明者任祖杰,寿黎但,胡天磊,刚陈,珂陈申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1