一种结构化p2p网络中的资源发布及查询方法
【专利摘要】本发明涉及一种结构化P2P网络中的资源发布及查询方法,该方法利用相邻词语关联性较强的特点确定关键词词组,根据关键词词组来索引资源,通过这种对单一数据建立多维索引的方式,巧妙地解决了结构化P2P网络中的多关键词查询问题,并融合了单一关键词的查询,使结构化P2P网络既支持关键词精确匹配的资源检索,又支持与输入内容相关的资源的搜索,从而获得更全面的查询结果;增强了方法的适用性,提高了查询效率,减少了通信花费。
【专利说明】一种结构化P2P网络中的资源发布及查询方法
【技术领域】
[0001]本发明涉及计算机通信【技术领域】,具体涉及一种结构化P2P网络中的资源发布及查询方法。
【背景技术】
[0002]对等网络(Peer to Peer)是一种资源分布利用与共享的网络结构体系,网络中的每个节点既是客户端又是服务器,节点之间直接通信交换数据和消息,而不是依赖于集中式的服务器来进行管理。结构化P2P是P2P系统中的一种分类,在结构化P2P网络中,每个节点根据一定的方式生成固定的ID,ID与节点位置关联起来生成路由信息,一般采用分布式哈希表(Distributed Hash Table)来实现,而每个资源也精确放置在确定的节点上,并提供了资源标识ID到资源所在节点位置的映射关系,从而保证在有限步数内能够定位到资源。
[0003]目前一般的结构化P2P网络中的路由协议,比如Chord, Kademlia等,基本是将目的地址为地址空间中的某一点的消息路由到在某种度量方法上距离该标识符最近的节点上,于是结构化P2P网络中的查询方法一般为:将输入查询转换为对标识符ID的查询,根据路由协议定位到最近的节点,如果该标识符对应的资源存在,则其发布的索引消息根据同样的方式也将定位到该节点,于是查询到目标资源的索引信息,并根据索引信息向拥有资源的节点获取资源作为检索结果。此时,如果输入的是多个关键词则无法定位到资源,即结构化P2P网络中的查询支持检索完全匹配的资源,并不支持搜索出与输入相关的资源。
[0004]针对结构化P2P网络中只支持关键词精确匹配的资源检索问题,现有的改进技术一般是:对资源的所有关键词进行发布建立索引信息,查询时对多个关键词检索出的结果进行汇总筛选,此方式导致检索出大量无用结果,增加了网络通信消耗,在此技术上的一种改进方法是依次对关键词进行查询,将查询结果传递给下一个关键词索引节点,下一个关键词索引节点在查询结果中查找符合本关键词的结果集,此方式减少了网络通信消耗,但是增加了节点的处理并延长了查询时间。
【发明内容】
[0005]本发明为解决现有技术中结构化P2P网络的资源查询方法存在的上述技术问题,本发明的提供了一种结构化P2P网络中的资源发布及查询方法。通过关键词之间的语义关系确定关键词词组,根据关键词词组来索引资源,使结构化P2P网络即支持关键词精确匹配的资源检索,又支持与输入内容相关的资源的搜索,从而获得更全面的查询结果;增强了方法的适用性,提高了查询效率,减少了通信花费。
[0006]为实现上述目的,本发明提供一种结构化P2P网络中的资源发布方法,该结构化P2P网络包括:资源节点和索引节点,所述的资源节点用于存储资源数据和发布资源数据的资源标识,所述的索引节点用于建立资源标识的索引信息;该方法包括:
[0007]步骤I)、将待发布的资源标识进行分词和停词,提取出关键词,生成关键词集合;
[0008]步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合;
[0009]步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成发布关键词词组ID集合,该集合作为资源发布的目标ID集合,资源节点依次从目标ID集合中提取一个关键词词组ID,根据该关键词词组ID定位对应的索引节点;
[0010]步骤4)、索引节点根据资源节点发出的发布请求中包含的资源信息和关键词词组ID建立索引信息,该索引信息以关键词词组ID为索引,以资源信息为索引内容;
[0011]步骤5)、资源节点收到索引节点的发布回复后,从发布关键词词组ID集合中删除已发布的关键词词组ID。
[0012]作为上述技术方案的进一步改进,所述步骤5)完成后,资源节点需要判断目标ID集合是否已经为空;如果不为空,则还有未发布的关键词词组ID并继续发布该关键词词组ID,如果为空,则停止发布。
[0013]作为上述技术方案的进一步改进,所述的索引信息包括完全匹配符、资源节点信息、数据信息;
[0014]所述的完全匹配符用于标识索引信息是否与待发布的资源标识完全匹配;
[0015]资源节点信息是指资源节点的通信信息,用于路由查找该资源节点;
[0016]数据信息包括索引关键词词组ID对应的资源在资源节点上的具体存储位置。
[0017]基于上述的结构化P2P网络中的资源发布方法,该结构化P2P网络包括:索引节点和查询节点,所述的索引节点用于建立资源标识的索引信息,所述的查询节点用于获取查询输入及查询与其匹配的索引信息;本发明还提供一种结构化P2P网络中的资源查询方法,该方法包括:
[0018]步骤I)、查询节点从查询输入接口获取查询输入,将查询输入进行分词和停词,提取出关键词,生成关键词集合;
[0019]步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合;
[0020]步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成查询关键词词组ID集合,该集合作为资源查询的目标ID集合;
[0021]步骤4)、查询节点先从目标ID集合中提取包含所有关键词的关键词词组ID,根据该关键词词组ID定位对应的索引节点的索引信息进行判断,该索引信息是利用上述的资源发布方法进行发布得到的;若存在完全匹配索引,则表示此次查询为检索结果,查询停止;若不存在完全匹配索引,则表示此次查询为搜索结果,并对剩余的关键词词组ID按顺序进行查询,将所有搜索结果汇总去重后,按查询先后排序生成最后的查询结果。
[0022]作为上述技术方案的进一步改进,所述步骤4)中在每次查询得到搜索结果后,需要判断该搜索结果数量是否满足预设的要求值,若满足则停止查询剩余的关键词词组ID,若不满足要求则继续查询剩余的关键词词组ID。
[0023]作为上述技术方案的进一步改进,所述步骤4)中在每次查询得到搜索结果后,从查询关键词词组ID集合中删除已查询的关键词词组ID,然后判断目标ID集合是否已经为空;若不为空,则继续查询剩余的关键词词组ID。
[0024]本发明的结构化P2P网络中的资源发布及查询方法的优点在于:
[0025]本发明的结构化P2P网络中的资源发布及查询方法利用相邻词语关联性较强的特点确定关键词词组,根据关键词词组来索引资源,通过这种对单一数据建立多维索引的方式,巧妙地解决了结构化P2P网络中的多关键词查询问题,并融合了单一关键词的查询。使结构化P2P网络既支持关键词精确匹配的资源检索,又支持与输入内容相关的资源的搜索,从而获得更全面的查询结果;增强了方法的适用性,提高了查询效率,减少了通信花费。
【专利附图】
【附图说明】
[0026]图1是本发明的一种结构化P2P网络中的资源发布及查询方法中各节点的功能模块结构图。
[0027]图2是本发明的一种结构化P2P网络中的资源发布及查询方法的工作流程图。
[0028]图3是本发明实施例中的一种结构化P2P网络中的资源发布方法的工作流程图。
[0029]图4是本发明实施例中的索引节点建立索引信息链表的工作流程图。
[0030]图5是本发明实施例中的索引信息链表的示意图。
[0031]图6是本发明实施例中的一种结构化P2P网络中的资源查询方法的工作流程图。
【具体实施方式】
[0032]下面结合附图和【具体实施方式】对本发明作进一步的描述并通过下述技术方案予以实现。
[0033]如图2所示,是本发明的一种结构化P2P网络中的资源发布及查询方法的工作流程。其中,该结构化P2P网络包括:资源节点和索引节点,所述的资源节点用于存储资源数据和发布资源数据的资源标识,所述的索引节点用于建立资源标识的索引信息;结构化P2P网络中的资源发布方法包括:
[0034]步骤I)、将待发布的资源标识进行分词和停词,提取出关键词,生成关键词集合。
[0035]步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合;
[0036]步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成发布关键词词组ID集合,该集合作为资源发布的目标ID集合,资源节点依次从目标ID集合中提取一个关键词词组ID,根据该关键词词组ID定位对应的索引节点。
[0037]步骤4)、索引节点根据资源节点发出的发布请求中包含的资源信息和关键词词组ID建立索引信息,该索引信息以关键词词组ID为索引,以资源信息为索引内容;
[0038]步骤5)、资源节点收到索引节点的发布回复后,从发布关键词词组ID集合中删除已发布的关键词词组ID。
[0039]基于上述的资源发布方法,图3示出了本发明实施例中的一种结构化P2P网络中的资源发布方法的工作流程。例如:“c++primer中文版”这个资源标识被分成3个关键词{“c++”,“primer”,“中文版”},按邻近组合的方式组合后可生成包含6个关键词词组的集合{ “c++primer 中文版,,,“c++primer,,,“primer 中文版”,“c++”,“primer”,“中文版,即一个含有N个关键词的集合将生成包含Ν*(Ν+1)/2个关键词词组的集合,该集合中的第一个关键词词组包含所有关键词,于是该词组可以完全描述该资源。接着根据统一的ID生成方式,将关键词词组集合中的关键词词组哈希生成目标ID集合,生成的目标ID集合为{ID1, ID2, ID3, ID4, ID5, ID6}。然后依次从目标ID集合中取出关键词词组ID,查询最接近的索引节点,向该索引节点发出发布请求,该请求包括资源信息的完全匹配符和数据信息,其中IDl对应的完全匹配符为1,其余为O。资源节点在收到索引节点的发布回复后,将已发布的关键词词组ID从目标ID集合中删去,并判断该目标ID集合是否为空,如果不为空,则表示还有未发布的关键词词组ID并继续发布该关键词词组ID,如果为空,则表示该资源已成功发布,停止发布,并立即去资源存储处将资源的发布状态更新。
[0040]上述的结构化P2P网络中的资源发布方法是为了查询网络中存储的资源而作的准备,因此,基于上述的一种结构化P2P网络中的资源发布方法,本发明还提供一种与之对应的结构化P2P网络中的资源查询方法。其中,该结构化P2P网络包括:索引节点和查询节点,所述的索引节点用于建立资源标识的索引信息,所述的查询节点用于获取查询输入及查询与其匹配的索引信息。
[0041]如图2所示,所述的资源查询方法包括:
[0042]步骤I)、查询节点从查询输入接口获取查询输入,将查询输入进行分词和停词,提取出关键词,生成关键词集合;
[0043]步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合;
[0044]步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成查询关键词词组ID集合,该集合作为资源查询的目标ID集合;
[0045]步骤4)、查询节点先从目标ID集合中提取包含所有关键词的关键词词组ID,根据该关键词词组ID定位对应的索引节点的索引信息进行判断,该索引信息是利用上述的资源发布方法进行发布得到的;若存在完全匹配索引,则表示此次查询为检索结果,查询停止;若不存在完全匹配索引,则表示此次查询为搜索结果,并对剩余的关键词词组ID按顺序进行查询,将所有搜索结果汇总去重后,按查询先后排序生成最后的查询结果。
[0046]基于上述的资源查询方法,图6示出了本发明实施例中的一种结构化P2P网络中的资源查询方法的工作流程。查询节点从查询输入接口接收查询输入,对输入进行分词,停词处理,生成关键词集合;根据发布过程中的关键词组合策略,即邻近关键词由多到少组合,将关键词组合生成关键词词组集合,根据统一的ID生成方式,将关键词词组集合哈希生成目标ID集合。从目标ID集合取出第一个关键词词组ID进行查询,向查询到的索引节点发出查询请求。
[0047]索引节点将查询索引信息链表,判断是否有该关键词词组ID的索引,如果索引信息链表中没有该关键词词组ID的索引,通知查询节点将该关键词词组ID从目标ID集合中删除;如果索引信息链表中有该关键词词组ID的索引,则继续判断该索引的索引信息中是否含有完全匹配索引,如果有,则直接返回完全匹配索引给查询节点,如果没有,则返回该索引的部分匹配索引给查询节点,通知查询节点将该关键词词组ID从目标ID集合中删除。
[0048]查询节点接收到索引节点的搜索结果后,判断是上述的哪种情况。如果返回的搜索结果为空,则将该关键词词组ID从目标ID集合中删除,开始发起剩余关键词词组ID的子搜索;如果返回的搜索结果为部分匹配索引信息,则判断索引信息数量是否满足预设的要求值,当不满足要求时,就将该关键词词组ID从目标ID集合中删除,并继续发起本次关键词词组ID的子搜索,当满足要求时,终止本次关键词词组ID的子搜索,根据收到的索引信息请求资源节点获取资源数据作为搜索结果;如果返回的是完全匹配索引信息,则直接请求资源节点获取资源数据作为最终的检索结果。
[0049]当发起剩余关键词词组ID的子搜索时,查询节点需要判断目标ID集合是否已经为空;如果不为空,则还有未查询的关键词词组ID并继续查询该关键词词组ID,如果为空,则停止查询,当前收到的所有索引信息即为全部的匹配信息,直接根据当前的索引信息请求资源节点获取资源数据作为搜索结果;
[0050]索引节点接收到剩余关键词词组ID的子搜索请求时,将直接查询索引信息链表,返回所有该关键词词组ID索引的索引信息。由于此时是剩余关键词词组ID的子搜索,故不论是完全匹配索引还是部分匹配索引,都是查询输入的部分匹配结果。
[0051]查询节点接收索引节点回复的关于所述的子搜索的搜索结果后,提取返回的索引信息,添加到已保存的索引信息中进行汇总去重,如果原有的索引信息与新的索引信息中均包含相同的资源时,则表明这两个索引信息索引同一个资源,需将原有的索引信息删除。去重结束后,查询节点判断索引信息是否满足预设的需求值,当满足要求时,终止剩余关键词词组ID的子搜索;当不满足要求时,则继续发起剩余关键词词组ID的子搜索,直到目标ID集合为空为止。
[0052]搜索结果按照查询顺序进行排序,查询顺序为目标ID集合中关键词词组ID的排列顺序,即相邻关键词从多到少的排列顺序,经过排序后搜索结果作为最后的查询结果。因此,越先查询得到的结果中包含的关键词越多,则与查询输入越接近。
[0053]图1所示,为本发明的一种结构化P2P网络中的资源发布及查询方法中各节点的功能模块结构。在结构化P2P网络中的每个节点地位平等,功能一致。每个节点既是资源节点,存储着系统资源;同时,每个节点又是索引节点,管理节点ID负责的资源ID区间,提供索引服务;最后,每个节点也都是查询节点,拥有查询功能,能够接收外来的查询输入,在结构化P2P网络中查询结果。图1中根据每个节点演示的功能不同,将各节点分别划分为资源节点、索引节点和查询节点。在各功能模块中,底层覆盖网模块为具体DHT算法实现的路由通信模块,根据不同的路由协议而定,主要负责各节点间的路由通信和查找,为上层应用提供消息和数据交互。上层应用模块包含发布模块、索引模块和查询模块,其中发布模块负责将节点本地资源根据一定方式发布到索引节点;索引模块负责接收发布请求,建立资源的索引信息;查询模块负责接收查询输入,在结构化P2P网络中查询并返回结果。
[0054]如图5所示,索引节点建立的索引信息链表以关键词词组ID作为索引keylD,每个关键词词组ID索引一个索引信息链表,该链表包含具体的索引信息index。每个索引信息index包括3个部分,分别是完全匹配符(I, 0)、nodeinfo和datainfo。完全匹配符为I表明该索引信息与待发布的资源标识完全匹配,完全匹配符为O则表明该索引信息与待发布的资源标识部分匹配。nodeinfo包括资源节点的通信地址,还可包括资源节点的节点ID、节点IP和通信端口 Port等。datainfo索引关键词词组ID对应的资源在资源节点上的具体存储位置,如果采用数据库存储的方式,该信息可以是资源的序列号或者是key值,如果是采用文件或者其他存储方式,该信息可以是资源的具体存储地址,比如文件地址或文件中的某行数据等。
[0055]基于上述索引信息链表的格式,如图4示出了本发明实施例中的索引节点建立索引信息链表的工作流程。索引节点在接收到资源节点的发布请求后,解析请求中的资源信息。根据资源节点的通信地址和ID设置索引信息的nodeinfo,根据解析得到的资源信息中的完全匹配标识值设置索引信息的完全匹配符,根据资源信息中的数据信息设置索引信息的datainfo,设置完成后生成索引信息index。根据关键词词组ID查询索引信息链表,如果已经存在该关键词词组ID,则直接将索引信息index添加到该关键词词组ID对应的原有索引信息链表中即可;如果不存在该关键词词组ID,则需要新建该关键词词组ID的索引信息链表,并将索引信息添加到该关键词词组ID的索引信息链表中。最后,索引节点发布回复给资源节点,表示与该关键词词组ID对应的关键词词组发布成功,索引建立完成。
[0056]最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种结构化P2P网络中的资源发布方法,该结构化P2P网络包括:资源节点和索引节点,所述的资源节点用于存储资源数据和发布资源数据的资源标识,所述的索引节点用于建立资源标识的索引信息;其特征在于,该方法包括: 步骤I)、将待发布的资源标识进行分词和停词,提取出关键词,生成关键词集合; 步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合; 步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成发布关键词词组ID集合,该集合作为资源发布的目标ID集合,资源节点依次从目标ID集合中提取一个关键词词组ID,根据该关键词词组ID定位对应的索引节点; 步骤4)、索引节点根据资源节点发出的发布请求中包含的资源信息和关键词词组ID建立索引信息,该索引信息以关键词词组ID为索引,以资源信息为索引内容; 步骤5)、资源节点收到索引节点的发布回复后,从发布关键词词组ID集合中删除已发布的关键词词组ID。
2.根据权利要求1所述的结构化P2P网络中的资源发布方法,其特征在于,所述步骤5)完成后,资源节点需要判断目标ID集合是否已经为空;如果不为空,则还有未发布的关键词词组ID并继续发布该关键词词组ID,如果为空,则停止发布。
3.根据权利要求1所述的结构化P2P网络中的资源发布方法,其特征在于,所述的索引信息包括完全匹配符、资源节点信息、数据信息; 所述的完全匹配符用于标识索引信息是否与待发布的资源标识完全匹配; 资源节点信息是指资源节点的通信信息,用于路由查找该资源节点; 数据信息包括索引关键词词组ID对应的资源在资源节点上的具体存储位置。
4.一种结构化P2P网络中的资源查询方法,该结构化P2P网络包括:索引节点和查询节点,所述的索引节点用于建立资源标识的索引信息,所述的查询节点用于获取查询输入及查询与其匹配的索引信息;其特征在于,该方法包括: 步骤I)、查询节点从查询输入接口获取查询输入,将查询输入进行分词和停词,提取出关键词,生成关键词集合; 步骤2)、将步骤I)中得到的关键词按邻近组合的方式由多到少地将关键词组合成关键词词组,生成关键词词组集合; 步骤3)、根据统一的ID生成方式将步骤2)中生成的关键词词组集合生成查询关键词词组ID集合,该集合作为资源查询的目标ID集合; 步骤4)、查询节点先从目标ID集合中提取包含所有关键词的关键词词组ID,根据该关键词词组ID定位对应的索引节点的索引信息进行判断,该索引信息是利用权利要求1所述的资源发布方法进行发布得到的;若存在完全匹配索引,则表示此次查询为检索结果,查询停止;若不存在完全匹配索引,则表示此次查询为搜索结果,并对剩余的关键词词组ID按顺序进行查询,将所有搜索结果汇总去重后,按查询先后排序生成最后的查询结果。
5.根据权利要求4所述的结构化P2P网络中的资源查询方法,其特征在于,所述步骤4)中在每次查询得到搜索结果后,需要判断该搜索结果数量是否满足预设的要求值,若满足则停止查询剩余的关键词词组ID,若不满足要求则继续查询剩余的关键词词组ID。
6.根据权利要求4所述的结构化P2P网络中的资源查询方法,其特征在于,所述步骤4)中在每次查询得到搜索结果后,从查询关键词词组ID集合中删除已查询的关键词词组ID,然后判断目标ID集合是否已经为空;若不为空,则继续查询剩余的关键词词组ID。
【文档编号】G06F17/30GK104376014SQ201310356090
【公开日】2015年2月25日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】陈君, 黄志敏, 吴京洪, 王玲芳 申请人:中国科学院声学研究所, 上海尚恩华科网络科技股份有限公司