分布式结构化网络中的查询方法、系统和设备的制作方法

文档序号:7694460阅读:175来源:国知局
专利名称:分布式结构化网络中的查询方法、系统和设备的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种分布式结构化网络中的查询方 法、系统和设备。
背景技术
P2P (Peer to Peer,对等网络)中,各节点通过直接交换来共享资源和服 务,每个节点既可以是服务器,也可以是客户端,而不依赖于集中式的服务 器。P2P网络技术主要应用于对等计算、协同工作、搜索引擎、资源共享等。 随着P2P应用的不断发展和研究,其结构也不断改变和完善。
在分布式结构化P2P网络中,每个节点都有固定的地址,整个网络具有 相对稳定而规则的拓朴结构。根据拓朴结构,可以给网络的每个节点指定一 个逻辑地址,并把地址和节点的位置对应起来。P2P网络的逻辑地址通常由 Hash (哈希)函数得到的,每个节点都保存一张DHT ( Distributed Hash Table, 分布式哈希表)进行路由,所以结构化P2P网络通常也叫做DHT网络。
在分布式结构化网络中,以各种DHT算法实现的网络进行的内容共享为 例。用户在共享文件夹中放置希望共享给他用户的内容,用户一旦登陆这个 系统,终端的软件就会对这些共享的内容进行统计,获取索引信息并将索引 信息放置到网络中的对应节点上。其他用户可以通过输入关键词在DHT网络 上进行检索。通过关键词匹配,用户可以查询到相关的内容信息包括内容 的一些属性和存储的位置等等。
发明人在实现本发明的过程中,发现现有技术至少存在以下问题
在分布式结构化网络中,目前查询的实现方法是从文件名中获取关键词 的信息;如果在该网络中进行文档共享,进行的检索也是以文档的文件名来 进行检索,而无法实现全文搜索,导致搜索结果不准确。

发明内容
本发明的实施例提供一种分布式结构化网络中的查询方法、系统和设备, 用于扩大分布式结构化网络中的查询范围,获得更全面的查询结果。
本发明的实施例提供一种分布式结构化网络中的查询方法,包括 第一节点接收到第二节点发送的携带查询数组的查询请求,所述查询数 组中包括多个待查询的关4建词;
所述第一节点根据所述多个待查询的关键词,获取查询结果; 所述第一节点将所述查询结果向所述第二节点发送。
本发明的实施例还提供一种分布式结构化网络中的查询方法,包括 获取查询命令中的多个待查询的关键词; 生成包括所述待查询的关键词的查询数组;
将每个待查询的关键词分别作为索引关键词,获取与所述查询数组中每
个待查询的关键词所对应的节点;
向与所述查询数组中的每个关键词所对应的节点发送携带所述查询数组 的查询请求。
本发明的实施例还提供一种分布式结构化网络中的查询设备,包括
消息处理模块,用于接收到第二节点发送的携带查询数组的查询请求, 所述查询数组中包括多个待查询的关键词;
索引查询模块,用于根据所述消息处理模块接收到的多个待查询的关键 词,获取查询结果;
消息转发模块,用于将所述索引查询模块获取到的查询结果向所述第二 节点发送。
本发明的实施例还提供一种分布式结构化网络中的查询设备,包括 关键词获^Mt块,用于获取查询命令中的多个待查询的关键词; 查询数组生成模块,用于生成包括所述关键词获取模块获取的多个待查
询的关4建词的查询凄丈组;
节点获取模块,用于将所述关键词获取模块获取的每个待查询的关键词
分别作为索引关键词,获取与所述查询数组中每个待查询的关键词所对应的节点;
查询请求发送模块,用于向所述节点获取模块获取的节点发送携带所述 查询数组的查询i青求。
本发明的实施例还提供一种分布式结构化网络中的查询系统,包括
第一节点,用于接收第二节点发送的携带查询数组的查询请求,所述查 询数组中包括多个待查询的关键词;根据所述多个待查询的关键词,获取查 询结果并将所述查询结果向所述第二节点发送;
第二节点,用于获取查询命令中的多个待查询的关键词;生成包括所述 待查询的关键词的查询数组;将每个待查询的关键词分别作为索引关键词获 取对应的节点;向所述获取到的对应节点发送携带所述查询ft组的查询请求, 所述获取到的对应节点包括所述第 一节点。
与现有4支术相比,本发明的实施例具有以下优点
通过对所查询的关键词的扩展,实现了多关键词的查询,扩展了查询可 选择的范围,与以单一关键词进行的查询相比,能够获取更加全面和完备的 查询结果。


图l是本发明实施例中终端创建共享内容的流程图; 图2是本发明实施例中终端上传共享内容的示意图; 图3是本发明实施例中文词表的形式示意图; 图4是本发明实施例中节点对接收到的包进行存储的流程图; 图5A和图5B是本发明的实施例中节点对接收到的查询命令进行查询的 流程图6A和图6B是本发明的实施例中节点进行查询的流程图7是本发明的实施例中节点进行过滤处理的流程图8是本发明的实施例中节点进行查询的示意图9是本发明的实施例中节点退出的流程图IO是本发明的实施例中节点设备的结构示意图;图ll是本发明的实施例中节点设备的另一结构示意图12是本发明的实施例中节点设备的结构示意图13是本发明的实施例中节点设备的另一结构示意图。
具体实施例方式
本发明的实施例提供一种分布式结构化网络中的查询方法。分布式结构 化网络(以DHT网络为例)主要是由普通节点组成,在该网络中,通过节点 之间的自动调节来完善整个网络的整体架构。根据用户的选择,在分布式结 构化网络中,节点可以选择成为网络中的一个节点,也可以通过其他接入节 点参与网络中的业务应用。节点只需要安装相关的软件,就表示节点加入到 了该系统。
以DHT网络为例,DHT网络中路由搜索的主要特点包括
① 散列表的建立节点标识符采用节点名字(如IP地址)的Hash值; 对象的标识符釆用对象名的Hash值;每个节点存储一张散列表,记录对象标 识符与节点物理地址的映射。
② 内容的查找内容查找通过〈Key, Value〉对来查询,Key指对象标识 符,Value指Key所对应的数值,可以自定义,如表示某个文件的名字之类。
③ 定位关键字所在的节点将各个节点所具有的〈key, value〉对保存在与 对象标识符相近的节点标识符的机器中,使对象标识符与节点标识符相对应。
(D<key, value〉对的流动当有新节点或新的〈key, value〉对出现时,将 对应的〈key, value〉对转移到对应的节点上;当旧节点离开时,将其存储的 <key, value〉对转移到相邻的节点上。
本发明实施例所涉及的系统主要是针对内容共享,用户需要在终端建立 一个共享文件夹,并把一些共享内容放置到该共享文件夹中。终端可以提取 出这些内容的关键词发送到DHT网络中,建立索引。
本发明的实施例中,终端创建共享内容的流程图如图l所示,包括以下步
骤步骤sl01、选择共享内容并提取共享内容中的关键词。 具体的,终端启动后,检查本地共享文件夹中的共享内容,并将其中的 关键词Key提取出来。提取关键词Key的位置可以包括文件名、作者、关键词 等,大小可以精确到Byte。其中,以文本文档为例,文本文档中需要提取的关 键词的位置主要包括文件名、标题、作者、单位、正文的关4建词、以及文 章的开始、结束以及中间位置等。
步骤sl02、计算关键词的权值并排列,得到关键词组。 具体的,对于每一个关键词Key,获取到该关键词Key的位置后,需要计 算该关键词Key的权值。对于同一个关键词Key出现在上述不同位置时,不同 位置的权重可相同或不同。以下以权值表示关键词所处的位置的权重,不同 位置所对应的权值相同或不同。对于同一个关4建词Key,将该关4建词Key所在 位置对应的权值进行累加,同 一位置多次出现时进行该位置对应的权值的多 次累加,最终得到的值即为该关键词Key的权值。关键词Key的权值越大,表 示关键词Key越能表示共享内容。例如,对于以下位置,每一个位置所对应的 权值分别为
文件名中一a;标题中一b;正文中一c;文章摘要中一e;关^l建词一g;文 章开头段落或者结束段落一d;被特殊标识的一f。如果一个关^T定词Key在以上 所有的范围中都出现过一次,那么该关键词Key的权值为a+b+c+d+e+f+g。
之后,对于不同的关键词Keys,按照其权值进行排列,得到关键词组 KeyArray[n],该关键词组表示共享内容的特征向量。例如在KeyArray[n]中包 括所有关键词的KeyList,如Key—il 、 Key_i2.. .Key—in共n个关键词Key。
步骤sl03、收集共享内容的元数据信息并组成包。
具体的,终端统计并收集共享内容的元数据信息,包括共享内容存储的 位置以及终端的信息等,并将收集到的信息组成一个包Packet。例如, 一个包 Packet中可以包括ContentID、 Value、 Metadata以及Addrlnfo。其中
ContentID:表示该共享内容在该网络中的唯一标识;
Value:表示关于关键词和该关键词的权值的信息,其中可以包括< Weight—i, Key—i > ; Key—i表示在该共享内容中出现的关键词,Weightj表示该关4定词的相 f直;
Metadata:包括该共享内容的相关属性如文件格式、大小、关键词数量IndexNum等等。
Addrlnfo:记录终端和用户的信息。
步骤sl04、将包发送到网络。
具体的,终端可以将这些信息传递到Nodel =Hash ( KeyArray[O]) .Node上进行存储,即对KeyArray[O]进行Hash运算得到Nodel; Nodel再把这个内容传递到Node2 = Hash (KeyArray[l]) .Node,并进行存储;Node2,再进行转发,最后把这个内容传递到节点Node(N)-Hash (KeyArrayN-l).Node。该步骤中的N是由系统确定。收到该包的其他节点可以才艮据该Packet的内容在本地维护该终端的相关信息,该信息可用于之后的内容查询流程。
上述步骤sl01 sl04描述的终端创建共享内容的示意图如图2所示。终端生成包Packet,并上传到接入节点,通过接入节点将该Packet的内容传递到DHT网络中各个哈希对应的节点上。该过程请参考上述步骤sl01 s104,在此不进行重复描述。
网络中的节点接收到其他节点发送的携带元数据信息的包后,在本地对接收到的包进行存储。需要存储的内容分别存储在节点本地的内容表和文词表中,以下分别对内容表和文词表的内容进行介绍
对于内容表,其中包括的内容为ContentID、 Value、 Metadata以及AddrList。其中
ContentID:表示该共享内容在该网络中的唯一标识;
Value:表示关于关键词和该关键词的权值的信息,其中可以包括<Weight_i, Key—i > ; Key一i表示在该共享内容中出现的关键词,Weight—i表示该关键词的权值;
Metadata:包括该共享内容的相关属性如文件格式、大小、关键词数量IndexNum等等。
AddrList:记录了目前哪些节点拥有该共享内容。
对于文词表,可以用矩阵的形式来表示,其格式如图3所示,其中行表示关键词Key,列表示共享内容在该网络中的唯一标识ContentID。行列交叉之处的数值表示在该ContentID表示的共享内容中是否存在该关键词Key。例如如果为1 ,则表示该ContentID表示的共享内容有该关键词Key,如果为0则表示没有;当然也可以采用其他数值,在此不重复描述。
本发明的实施例中,节点对接收到的包进行存储的步骤如图4所示,包括以下步骤
步骤s401、获取包中的ContentID。
步骤s402、查询内容表,判断内容表中是否已经存在相同的ContentID,存在时进行步骤s403,否则进行步骤s404。
步骤s403、将包中的Addrlnfo所记录的用户信息存储到内容表的ContentID所对应的AddrList中并结束。
步骤s404、将该包中的信息添加到内容表中。具体的,才艮据包中的内容在内容表中建立相应的ContentID、 Value、 Metadata以及AddrList。
步骤s405、将该包的Value中存在的关键词和ContentID关系添加到文词表中。
本发明的实施例中,节点对接收到的查询命令进行查询的步骤如图5A所示,包括
步骤s51、获取查询命令中的多个待查询的关键词。
步骤s52、生成包括多个待查询的关键词的查询数组。
步骤s53、将每个待查询的关键词分别作为索引关键词,获取与查询数组中每个待查询的关键词所对应的节点。
步骤s54、向与查询数组中的每个关键词所对应的节点发送携带查询数组的查询请求。
本发明的实施例中,节点对接收到的查询命令进行查询的步骤如图5B所示,包括
步骤s501、获取查询命令中待查询的关键词以及每个关键词的权值大小。步骤s502、按照权值大小对所述待查询的关键词进行排列,生成包括按照权值大小排列的待查询关键词的查询数组。具体的,终端从文件或者输入的查询文字中提取出需要搜索的关键词,
然后把提取到的关键词按照权值进行排列,获得一个查询数组SearchValue。
步骤s503、将每个待查询的关键词分别作为索引关键词,获取与查询数组中每个索引关4建词所对应的节点。
步骤s504、向与每个索引关键词组中的每个关键词所对应的节点发送携带所述查询数组的查询请求。
具体的,终端可以选取查询数组SearchValue中权值最大的前M个关键词作为查询的关键路径。根据本地维护的网络中各节点的索引信息,对该M个关键词中每 一 个关4建词IndexKey分別选取对应的节点,如Node 1 = Hash(IndexKey0).Node、 Node2 = Hash (IndexKey1).Node..,,然后将该查询数组SearchValue发送到所选取的各个节点上。在发送的方式上,终端可以 一次性把所有的内容传递给所有与M个IndexKey对应的DHT网络节点,然后这些节点并发的在本地进行查询;或在在OpenDHT上实现应用层组播,首先将查询数组SearchValue发送到Hash (IndexKey0).Node,然后再进行通过应用层组播,传递到其他M-l个节点上。
本发明的实施例还提供一种分布式结构化网络中的查询方法,如图6A所示,包括以下步骤
步骤s61、第一节点接收到第二节点发送的携带查询数組的查询请求,查询数组中包括多个待查询的关键词。
具体的,该多个待查询的关键词可以按照权值大小进行排列,该多个待查询的关键词中,包括一关键词与第一节点对应,该关键词即为第一节点的索引关键词。
步骤s62、第一节点根据待查询的多个关键词,获取查询结果。步骤s63、第一节点将查询结果向第二节点发送。
具体的,当节点接收到其他节点发送的对特定的查询数组SearchValue进行检索的请求,其中包括与本节点对应的IndexKey,如图6B所示,进行以下查询流程
步骤s601、查询本地的文词表的Key中是否拥有该IndexKey,若有则继续步骤s602,否则结束。
步骤s602、根据文词表,获取拥有该IndexKey的所有ContentID。步骤s603 、对于每一ContentID,分别获取不同ContentID中的所包括的
Valus。
步骤s604、对获取到的Value进行过滤操作。
具体的,对于每一ContentID的Value ,分别与SearchValue中比IndexKey权值大的其他关键词Key进行比较,过滤掉在比IndexKey权值大的关键词Key所对应的节点上已经检索过的Value。该步骤的目的在于由于在多个节点之间可能存储着相同的节点备份,所以需要对查询到的内容进行过滤,防止反馈的信息中包括过多的重复内容。例如查询数组为(A,B,C,D,E,F),发送到D哈希所对应的节点4上,该请况下如果节点4上存在相应登记的关键词组(O,B,D,G,J),就要把该关键词组过滤掉,因为已经在B对应的节点上登记过。
步骤s605、获取剩余的Value和SearchKey的相关性,按照相关性的大小对Value进行排列后得到查询结果。
上述步骤s604中对获取到的Value进行过滤操作的一例如下假设一节点上存在两个Value关键词文档,该节点对应的索引关键词为IndexKey , 一个是查询Value—O,另一个是被比较关键词文档Valuej:, Value—O和Value—C中关键词Key的数量分别是lndexNum—0和IndexNum—C。查询过程中与该节点对应的关键词为IndexKey。当Value一O和Value—C中所包括的关键词Key分别按照权值大小排序时,该lndexKey在Value一0和Value—C中的位置分别是KeyPos一O和KeyPos—C。初始设定过滤索引数量为ComNum = IndexNum—O,则过滤处理流程如图7所示,包括以下步骤
步骤s701 、获取IndexKey在Value—O和Value—C中的位置,分别为KeyPos—O和KeyPos一C。
步骤s702、设置ComNum的值为IndexNum—C。
步骤s703 、把在Value—O中权值大于IndexKey的关键词组成 一 个组ComArray。步骤s704、判断KeyPos—C是否大于等于IndexNum—C,不是则进行步骤s705,否则进行步骤s706。
步骤s705、设置ComNum的值为KeyPos一C并继续。
步骤s706 、判断Value_C中前ComNum个Key中是否存在CommArray中的某一个或者多个关键词,如果存在则结束对当前两个Value关键词文档的过滤操作、继续进行其他Value关键词文档的过滤操作,否则进行步骤s707。
步骤s707、进4于相似度计算并结束。
相似度计算的 一 例如下假设两个共享内容各自对应的Value—O和Value—C,首先对把两者Value—O和Value一C进行向量扩展,具体的扩展方法如下
首先假设Value一O- (Al,A2,A3,…,An) , Value—C = (Bl,B2,B3,…,Bm ),并以向量Value—X^示以上两个向量的并集n为向量Value—O的维数,m为向量Valuej:的维数。
Value—X = Value一0门Value—C = ( XI , X2, X3,…,Xt) , t 2 n,m, t
为向量Valu^X的维数。
将Value—O和Value一C扩展为t维向量,对于没有在Valu^X中出现的单
位设置为0,则向量扩展后的结果为
Value—O今Value—XO-(XOl, X02, X03, ......,XOt)
Value—C + Value一XC-(XCl, XC2, XC3, ......,XCt)
根据向量扩展后的结果,Value—0和Valuej:的相似度计算方法为
得到ValueJ3和Value一C的相似度。
上述描述查询流程的示意图如图8所示。终端通过接入节点接入网络后,将需要查找的关键词组发送到接入节点,接入节点根据该关键词组中的索引关键词,将该关键词组发送到与索引关键词哈希对应的DHT网络中的其他节点上。接收到关键词组的其他节点进行关键词查询,并对查询结果进行过滤,
Similar OC =以与KeyN哈希对应的节点为例,在查询到的结果中,过滤掉有关键词Keyi(i=l,2...N-l)且其权值大于KeyN的结果。各节点将最终的查询结果通过接入节点发送到终端。该查询过程请参考上述图6以及图7中的描述,在此不进行重复描述。
本发明的实施例中,还提供了一种某节点退出时,网络中其他节点进行的节点退出流程。当一节点检测到特定节点退出网络时,若发现本地内容表中的特定内容只在该特定节点存在,则将该特定内容从本地内容表中删除,将该特定内容以及对应的关键词从本地文词表中删除;若发现本地内容表中的特定内容不只在该特定节点存在时,从与该特定内容对应的节点记录中删除该特定节点。如图9所示,该节点退出时的处理流程包括以下步骤
步骤s901、网络节点检测到某个本地登记的节点退出。
步骤s902、对于本地的内容表中的每一ContentID,判断该ContentID的Addlist中是否只存在该节点,是则进行步骤s903 ,否则进行步骤s905 。
步骤s903、从文词表中删除该ContentID。
步骤s904、从内容表中删除该ContentID ,并进行步骤s906。
步骤s905、从ContentID的Addlist中将该节点删除。
步骤s906、判断是否为首次发现该节点退出,是则进行步骤s907,否则结束。
步骤s907、根据节点的ContentID中的Value和IndexNum,通知其他节

基于本发明的实施例中提供的方法,通过对所查询的关键词的扩展,实
现了多关键词的查询,扩厚、了查询可选择的范围,使得网络上的索引登记不仅仅限于内容的文件名或者标题,而且还可以扩展到内容正文中的摘要、内容、作者等内容,与单一关键词的查询相比得到了更加全面和完备的查询结
果。另外,通过对查询结果的过滤,防止了相同内容的多次返回;且通过相似度排序功能,使得查询返回的结果更加人性化。本发明的实施例中还提供一种分布式结构化网络中的查询系统,包括第
一节点和第二节点。其中
第一节点,用于接收第二节点发送的携带查询数组的查询请求,查询数组中包括多个待查询的关键词;根据多个待查询的关键词,获取查询结果并将查询结果向第二节点发送。
第二节点,用于获取查询命令中的多个待查询的关键词;生成包括待查询的关键词的查询数组;将每个待查询的关键词分别作为索引关键词获取对应的节点;向获取到的对应节点发送携带查询数组的查询请求,获取到的对应节点包括第一节点。
本发明的实施例中,还提供一种节点设备,作为第一节点用于分布式结构化网络中的关4定词查询,其结构如图10所示,包括
消息处理模块10,用于接收到第二节点发送的携带查询数组的查询请求,所述查询数组中包括多个待查询的关键词。
索引查询模块20,用于根据消息处理模块IO接收到的多个待查询的关键词,获取查询结果。
消息转发模块30,用于将索引查询模块20获取到的查询结果向所述第二节点发送。
本发明的实施例中,如图ll所示,该节点设备中
消息处理模块IO可以进一步包括第一消息处理子模块11,用于接收第二节点发送的查询数组的查询请求,该查询数组中包括多个待查询的关键词且多个待查询的关键词按照权值大小排列,该多个待查询的关键词中存在一关键词与第一节点对应,该与第一节点对应关键词为所述第一节点的索引关键词。
该节点设备还包括
内容过滤模块40,用于对索引查询模块20获取到的查询结构进行过滤。相似度获取模块50,用于对内容过滤模块40过滤后的查询结果根据相似度进行排序,并将处理后的查询结果发送给消息转发模块30。索引存储模块60,用于接收网络中其他节点发送的包内容管理模块70,用于对索引存储模块60接收到的包进行存储;并将内容提供给索引查询模块20用于查询,内容包括内容表和文词表。
内容管理统计模块80,用于获取共享内容的信息并组成包,将组成的包通过消息转发^t块30向网络中的其他节点发送。
退出管理模块90,用于检测到网络中的第三节点退出时,对内容管理模块70中存储的所述第三节点上存在的内容进行修改。
本发明的实施例还提供一种查询设备,作为第二节点用于分布式结构化网络中的关键词查询,其结构如图12所示,包括
关键词获取模块110,用于获取查询命令中的多个待查询的关键词。
查询数组生成模块120,用于生成包括关键词获取模块IIO获取的多个待查询的关键词的查询数组。
节点获取模块130,用于将关键词获私漠块IIO获取的每个待查询的关键词分别作为索引关键词,获取与所述查询数组中每个待查询的关键词所对应的节点。
查询请求发送模块140,用于向节点获取^莫块130获取的节点发送携带查询数组生成模块120获取的查询数组的查询请求。另外,如图13所示,该节点设备还可以包括
关键词权值获^Mt块150,用于获取关键词获^Mt块110获取的每个待查询的关键词的权值大小;并提供给查询数组生成模块120用于对查询数组中的待查询的关键词按照权值大小进行排列。
基于本发明的实施例中提供的系统和设备,通过对所查询的关键词的扩展,实现了多关键词的查询,扩展了查询可选择的范围,使得网络上的索引登记不仅仅限于内容的文件名或者标题,而且还可以扩展到内容正文中的摘要、内容、作者等内容,与单一关键词的查询相比得到了更加全面和完备的查询结果。另外,通过对查询结果的过滤,防止了相同内容的多次返回;且通过相似度排序功能,使得查询返回的结果更加人性化。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一 台网络设备执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种分布式结构化网络中的查询方法,其特征在于,包括第一节点接收到第二节点发送的携带查询数组的查询请求,所述查询数组中包括多个待查询的关键词;所述第一节点根据所述多个待查询的关键词,获取查询结果;所述第一节点将所述查询结果向所述第二节点发送。
2、 如权利要求1所述分布式结构化网络中的查询方法,其特征在于,所 述第 一节点接收到第二节点发送的携带查询数组的查询请求包括-.所述第一节点接收第二节点发送的查询数组的查询请求,所述查询数组 中包括多个待查询的关键词且所述多个待查询的关键词按照权值大小排列。
3、 如权利要求2所述分布式结构化网络中的查询方法,其特征在于,所 述查询数组的多个待查询的关键词中,存在一关键词与所述第一节点对应, 所述与第一节点对应关^t词为所述第 一节点的索引关4建词。
4、 如权利要求1或3所述分布式结构化网络中的查询方法,其特征在于, 所述第一节点根据所述多个待查询的关键词,获取查询结果包括所述第 一节点在内容索引中获取包括所述索引关4建词的内容索引; 所述第 一节点获取所述内容索引对应的内容所包括的关键词组; 所述第 一节点对获取到的关键词组进行过滤; 所述第 一节点获取过滤后的关键词与所述索引关键词的相关性; 所述第一节点将所述过滤后剩余的关键词按照相关性大小进行排序后, 得到查询结果。
5、 如权利要求4所述分布式结构化网络中的查询方法,其特征在于,所 述第 一节点对获取到的关键词组进行过滤包括获取需要进行过滤的第一关键词组Value—O和第二关键词组Value—C;所 述ValueJD中的索引关键词数量为IndexNum—O,所述Value—C中的索引关键 词数量为IndexNum—C;初始化比较向量ComNum为IndexNum—C;获取所述索引关键词IndexKey在所述Value一O中的位置KeyPos一O,和 在所述Value一C中的位置KeyPos一C;将所述Value—O中权值大于所述IndexKey的关键词组成比较词组ComArray;所述Value—C中IndexKey的权值大于IndexNum_C的权值时,设置 ComNum为KeyPos—C;所述Value—C的前ComNum个关4建词中存在至少一个关键词与所述 ComArray中的关键词相同时,结束过滤;否则继续所述获取相关性的操作。
6、 如权利要求1所述分布式结构化网络中的查询方法,其特征在于,所 述第一节点接收到第二节点发送的携带查询数组的查询请求前,还包括所述第 一节点获取本地共享内容的关键词; 所述第 一节点获取每一关键词的权值; 所述第一节点将所述各关键词按照权值进行排列并组成包; 所述第一节点根据所述排列结果,获取与前特定个关键词中每个关键词 对应的节点;所述第一节点将所述包向所述获取到的节点发送。
7、 如权利要求6所述分布式结构化网络中的查询方法,其特征在于,所 述第一节点将所述包向所述获取到的节点发送包括所述第一节点向每个获取到的节点分别发送所述包;或所述第一节点根据所述排列结果,向与第一个关键词对应的节点发送所述包,由所述与第 一个关键词对应的节点向与第二个关#:词对应的节点发送所述包。
8、 如权利要求6或7所述分布式结构化网络中的查询方法,其特征在于, 所述包中除包括关键词以及每一关键词对应的权值外,还包括所述第一节 点上存储的共享内容的标识、所述共享内容的属性、所述第一节点的信息中 的一种或多种。
9、 如权利要求1所述分布式结构化网络中的查询方法,其特征在于,所 述第一节点接收到第二节点发送的携带查询数组的查询请求前,还包括所述第 一节点接收其他节点发送的包; 所述第一节点对所述接收到的包进行存储。
10、 如权利要求9所述分布式结构化网络中的查询方法,其特征在于,所述第一节点对所述接收到的包进行存储包括 所述第一节点获取所述包中的内容的标识;所述第 一节点判断获取到的内容的标识在本地的内容表中是否存在; 存在时,所述第 一 节点将发送所述包的节点的信息添加到与所述内容对 应的节点记录中;不存在时,所述第一节点将所述包中的内容标识、关键词 以及每一关键词对应的权值、内容的属性、节点信息中的一种或多种添加到 本地的内容表,将所述包中的内容标识以及对应的关键词添加到本地的文词 表。
11、 如权利要求1所述分布式结构化网络中的查询方法,其特征在于, 所述第一节点将所述查询结果向所述第二节点发送后,还包括所述第一节点;险测到网络中的第三节点退出;所述第一节点发现本地内容表中的特定内容只在所述第三节点存在时, 将所述特定内容从本地内容表中删除,将所述特定内容以及对应的关键词从 本地文词表中删除;所述第一节点发现本地内容表中的特定内容不只在所述 第三节点存在时,从与所述特定内容对应的节点记录中删除所述第三节点。
12、 如权利要求l、 2、 3、 6、或7中任一项所述分布式结构化网络中的 查询方法,其特征在于,所述关键词对应的权值具体包括对于特定的内容,提取所述内容中同一关4建词出现的不同位置与次数; 根据预先设置的不同位置所对应的权值,获取所述关键词在所述内容中 的权值。
13、 一种分布式结构化网络中的查询方法,其特征在于,包括 获取查询命令中的多个待查询的关键词;生成包括所述待查询的关键词的查询数组;将每个待查询的关键词分别作为索引关键词,获取与所述查询数组中每 个待查询的关键词所对应的节点;向与所述查询数组中的每个关键词所对应的节点发送携带所述查询数组 的查询请求。
14、 如权利要求13所述方法,其特征在于,所述获取查询命令中的多个待查询关键词后,还包括获取每个待查询的关键词的权值大小;所述生成包括所述待查询的关键词的查询数组包括按照权值大小对所述待查询的关键词进行排列,生成包括按照权值大小 排列的待查询的关键词的查询数组。
15、 如权利要求13或14所述分布式结构化网络中的查询方法,其特征 在于,所述向与所述查询数组中的每个关键:词所对应的节点发送携带所述查 询数组的查询请求包括向与每个待查询的关键词所对应的节点分别发送携带所述查询数组的查 询请求;或获取所述查询数组中未查询且权值最大或者最小的关^^建词作为第一个索 引关键词,向与所述第一个索引关键词对应的节点发送携带所述查询数组的 查询请求,由所述与第一个索引关键词对应的节点使用相同的方法获取第二 个索引关键词,向与所述第二个索引关键词对应的节点发送所述携带所述查 询数组的查询请求。
16、 一种分布式结构化网络中的查询设备,其特征在于,包括消息处理模块,用于接收到第二节点发送的携带查询数组的查询请求, 所述查询数组中包括多个待查询的关4走词;索引查询模块,用于根据所述消息处理模块接收到的多个待查询的关键 词,获取查询结果;消息转发模块,用于将所述索引查询模块获取到的查询结果向所述第二 节点发送。
17、 如权利要求16所述分布式结构化网络中的查询设备,其特征在于, 所述消息处理模块包括第一消息处理子模块,用于接收第二节点发送的查询 数组的查询请求,所述查询数组中包括多个待查询的关键词且所述多个待查 询的关键词按照权值大小排列,所述多个待查询的关键词中存在一关键词与 所述第一节点对应,所述与第一节点对应关键词为所述第一节点的索引关键 词。
18、 如权利要求16或17所述分布式结构化网络中的查询设备,其特征在于,还包括内容过滤模块,用于对所述索引查询模块获取到的查询结果进行过滤; 相似度获取模块,用于对所述内容过滤模块过滤后的查询结果根据相似 度进行排序。
19、 如权利要求16或17所述分布式结构化网络中的查询设备,其特征 在于,还包括索引存储模块,用于接收网络中其他节点发送的包; 内容管理模块,用于对所述索引存储模块接收到的包进行存储;并将存 储的内M供给所述索引查询模块用于查询,所述内容包括内容表和文词表。
20、 如权利要求16或17所述分布式结构化网络中的查询设备,其特征 在于,还包括内容管理统计模块,用于获取共享内容的信息并组成包,将所述组成的 包通过所述消息转发模块向网络中的其他节点发送。
21、 如权利要求16或17所述分布式结构化网络中的查询设备,其特征 在于,还包括退出管理模块,用于检测到网络中的第三节点退出时,对所述内容管理 模块中存储的所述第三节点上存在的内容进行修改。
22、 一种分布式结构化网络中的查询设备,其特征在于,包括 关键词获取模块,用于获取查询命令中的多个待查询的关键词; 查询数组生成模块,用于生成包括所述关键词获取模块获取的多个待查询的关键词的查询数组;节点获取模块,用于将所述关键词获取模块获取的每个待查询的关键词 分别作为索引关键词,获取与所述查询数组中每个待查询的关键词所对应的 节点;查询请求发送模块,用于向所述节点获取模块获取的节点发送携带所述 查询数组的查询"i青求。
23、 如权利要求22所述的分布式结构化网络中的查询设备,其特征在于, 还包括关键词权值获取模块,用于获取每个待查询的关键词的权值大小;并提 供给所述查询数组生成模块用于对查询数组中的待查询的关键词按照权值大小进行排列。
24、 一种分布式结构化网络中的查询系统,其特征在于,包括 第一节点,用于接收第二节点发送的携带查询数组的查询请求,所述查询数组中包括多个待查询的关键词;根据所述多个待查询的关键词,获取查询结果并将所述查询结果向所述第二节点发送;第二节点,用于获取查询命令中的多个待查询的关键词;生成包括所述待查询的关键词的查询数组;将每个待查询的关键词分别作为索引关键词获取对应的节点;向所述获取到的对应节点发送携带所述查询数组的查询请求,所述获取到的对应节点包括所述第 一节点。
全文摘要
本发明的实施例公开了一种分布式结构化网络中的查询方法、系统和设备。该方法包括第一节点接收到第二节点发送的携带查询数组的查询请求,所述查询数组中包括多个待查询的关键词;所述第一节点根据所述多个待查询的关键词,获取查询结果;所述第一节点将所述查询结果向所述第二节点发送。本发明的实施例中,通过对所查询的关键词的扩展,实现了多关键词的查询,扩展了查询可选择的范围,与单一关键词的查询相比得到了更加全面和完备的查询结果。
文档编号H04L12/54GK101599886SQ20081011048
公开日2009年12月9日 申请日期2008年6月5日 优先权日2008年6月5日
发明者王铁英 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1