论文部分内容阅读
随着Internet的日益普及,人们的信息资源变得丰富起来,如何在众多的资源中快速、准确的定位到合适的信息,是一个十分棘手、也是必须解决的问题。Web搜索引擎在很大程度上缓解了该问题,提高了人们搜索信息的能力,但是它仍然存在不少问题。由于P2P所具有的性质,解决Web搜索引擎现存的问题相对容易一些,故不少研究者把目光投向了P2P的解决方案。本文对P2P搜索系统进行了较为深入的研究,在此基础之上,针对非结构化P2P搜索系统存在的一些缺陷,提出了“基于主题分组的P2P搜索”方案。
本文将方案的实现分解为5个问题,提出了三个相应的算法,并通过试验验证了各个算法在解决相应问题时的有效性。这三个算法分别为:
1.TKC算法。该算法借鉴了文本分类技术的思想,它使得P2P环境中的节点能够准确地表达节点自身的主题,并且能够确定节点自身与其它节点的主题关系,即两个节点是否属于同一主题;本文通过三组实验,验证了该算法在不同环境下,都能够较准确地通过文档集合间的TKC相似度来判断文档集合之间的主题关系;
2.TBR算法。本文定义了环状结构、且与主题相关联的TBR拓扑结构,并在该拓扑结构上实现了节点自动分组的TBR算法,该算法能够有效地维护系统中形成的多个主题组,使它们依据主题关系分布在TBR拓扑结构中;本文通过实验,在“算法完整性”等方面验证了算法的性能,实验结果证明,在阀值适当的情况下,算法能够较好地解决“节点分组”和“管理主题组”两个问题;
3.TBS搜索算法。在TBR拓扑结构基础上,TBS将搜索分为“组内搜索”和“组间搜索”,通过组内搜索减少Flooding搜索算法的“泛洪”空间,通过组间搜索将搜索请求准确的发送到适当的主题组;在P2PSim平台上的仿真实验证明,本文提出的TBS算法较为有效地减少了系统的垃圾消息、提高了搜索效率。
本文在实现了上述三个算法的基础上,还设计了“基于主题分组的P2P搜索”方案的系统原型,并在通过对开源项目JXTAShell的学习,对其进行了二次开发,实现了该原型系统、以及节点加入系统、创建主题组、搜索等基本的系统操作,基本实现了“基于主题分组的P2P搜索”。