1、 本 科 毕 业 论 文 基于 P2P架构的企业级全文搜索 系统的设计与实现 -服务器与连接 The Design and Implementation of P2P Architecture Based Enterprise Full-text Search System -Server and connection 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 摘 要 研究表明, 技术型企业、设计类企业、软件开发企业均有这样的特点:技术和研发人员 从 网络 中 获取了大量的 技术资料 和 市场信息 , 同时,他们通过生产工作也积累了大量
2、的项目经验,技术文档等等,构建起个人或团体较完善的 信息 库。但 由于公司与公司间商业性竞争而 限于 技术 性 保密 和 员工 隐私等问题,这 些 有 高 价 值 信息无法 在企业内部 形成有效的 流 动和传播, 从而形成了一个个信 息孤岛。 针对此,急需研发一个便于共享企业内部资源的信息共享系统。基于,企业内部技术、项目资料多以文件形式存储的特 点,开发一个企业级全文搜索引擎是当务之急。 而 P2P 架构 在互联网应用以其方便,信息交互迅速,结点平等等特点运用极其广泛,据电信部门 公布的 数据表明:当今基于 P2P 技术的 BT 流量占到计算机网信息量的 60%以上,可见其运用广泛。 因此
3、,我们提出一种 基于 P2P 架构的 企业资源 搜索引擎, 一个 用于知识型企业内部的员工之间的 信息 共享 的 检索工具。该项目基于 Windows Search 服务,根据用户自定义的搜索需求,进行局域网络全文文件搜索 。 使局域网络内 的共享资源以一个界面就能全部呈现给用户,整个网络内计算机资源便形成一个资源池 ,任何用户能够以使用本地资源方式使用网络内的资源。服务器同时不断整合搜索 结果:关键词、词频统计数据、文档的 存储 位置 等信息 。当任何一个用户试 图搜索某一个 资源时 ,系统自动在企 业内部网络进行搜索和适配,并将合适的文档直接推送到搜索结果集中, 并将检索结果保存在内部服务
4、器端以加速二次检索, 形成一个企业网内的 P2P 搜索 共享系统。 项目的 主要任务是通过 Windows Search 服务 实现文档的搜索和共享 ,使用 windows search API 用 C#语言构建基于 Socket 编程 和多线程技术 实现的P2P 客户端和 服务端。 关键词 : P2P ; 企业文件共享 ; 全文搜索 Abstract Recent researches prove that Technology-based enterprises, design-based enterprise, software development and service enter
5、prises all have the following characteristics: technology and R enterprise files sharing; full-text search 目录 第一章 绪论 . 1 1.1 前言 .1 1.2 论文组织结构 .2 第二章 系统概述与相关技术 . 4 2.1 系统概述 .4 2.1.1 文件搜索引擎概述 .4 2.1.2 P2P 概述 .5 2.1.3 系统实现工具概述 .7 2.2 相关技术 .8 2.1.1 资源预分配机制 .8 2.1.2 Windows Search 4.0.10 2.1.3 Telerik Ra
6、dControls for WinForms. 11 本章小节 .14 第三章 系统分析 . 15 3.1 系统需求 .15 3.1.1 企业对于内部文件搜索共享系统的需求 .15 3.1.2 基于 P2P 架构的搜索共享系统的功能需求 .15 3.2 系统设计 .16 3.1.1 系统概述 .16 3.1.2 系统非功能需求 .16 3.1.3 总体设计 .16 3.3 详细设计 .18 3.1.1 组件、框架与系统模块 .18 3.1.2 模块通信 .19 本章小结 .20 第四章 系统实现 . 22 4.1 包设计 .22 4.2 服务器的实现: .25 4.1.1 模块一:搜索服务模块
7、: .29 4.1.2 模块二:搜索请求模块 .32 4.1.3 模块三:搜索状态模块 .36 4.1.4 请求池与响应池 .36 4.3 客户端简介 .41 4.4 Socket池化实现 .46 4.5 实体对象序列化 .48 本章小节 .50 第五章 系统测试及运行结果 . 51 5.1 测试 .51 5.2 结果 .51 文件搜索: .51 文件下载 .54 本章小结 .55 第六章 展望与总结 . 56 6.1 展望 .56 6.2 总结 .56 参考文献 . 58 致谢 . 59 Contents Chapter 1 Preface .1 1.1 Introduction.1 1.2
8、 The structure of this paper .2 Chapter 2 System principle and related technologies outline .4 2.1 System working principle.4 2.1.1 File search enginer working principle.4 2.1.2 P2P working principle .5 2.1.3 System Implemetation working principle .7 2.2 Related technologies introduce .8 2.1.1 Resou
9、rce pre-allocation mechanism .8 2.1.2 Windows Search 4.0.10 2.1.3 Telerik RadControls for WinForms. 11 Summary.14 Chapter 3 System Analysis .15 3.1 System Requirement .15 3.1.1 Requirements of enterprise search system .15 3.1.2 Functional requirements of P2P based system.15 3.2 System Design .16 3.1
10、.1 Introduction of system .16 3.1.2 Non-functional requirements of system .16 3.1.3 Overall design .16 3.3 Detail Design.18 3.1.1 Components, framework and system modules .18 3.1.2 Module Communication .19 Summary.20 Chapter 4 System Implementation . 22 4.1 Packet Design .22 4.2 Server implementatio
11、n: .25 Module 1: Search service module: .29 Module 2: The search request module .32 Module 3: Search state Module .36 Module 4: Responsepool and RequestPool.36 4.3 Client Profile .36 4.4 Socket Pooling Implementation.46 4.5 object serialization .48 Summary.50 Chapter 5 System testing and running res
12、ults. 51 5.1 System testing .51 5.2 Running results .51 Summary.55 Chapter 6 Sumary and Outlook . 56 6.1 Outlook.56 6.2 Summary of the paper .56 References . 58 Thanks. 59 错误 !使用“开始”选项卡将 Heading 1 应用于要在此处显示的文字。 错误 !使用“开始”选项卡将 Heading 1 应用于要在此处显示的文字。 1 第一章 绪论 1.1 前 言 互联网和搜索引擎已经成为现在人生活中不可或缺的一部分。在带给生活极
13、大方便的同时,互联网上庞大冗沓的信息量也使人们在搜寻自己所需上付出了较大的时间成本,其中最主要的花费就是在浩瀚的搜寻结果中甄别、挑选的时间 尽管搜索引擎已经在它的能力上最大程度地进行了优化排序。 在调研中,我们发现,在企业中,尤其是技术型企业、设计类企业、软件开发和服务企业中:横向对比,由于工作环境和工作项目等的相似性,同一时期员工的信息获取关键字和方向重复度非常高,在同一部门尤甚;纵向对比,由于企业的业务的相似,不同项目、 工程所应用的技术、资料等资源亦可以长时间重复利用。另一方面,员工本身自己在工作中已经不自觉建立和完善的知识库和资源,这些资源往往是已经经过筛选甄别的,相比互联网上的内容,
14、具有更高的价值和更少的冗余无用信息,但是同时又有很大数量的资源是重复浪费的,员工每一个人可能在获取一份相同的资料上都花费了不等的时间。 如果能将整个公司的网络资源有效组织,那么不论是员工个人时间,还是间接的公司成本,都会得到极大的节约和改善。而资料文档的互通共享也会使工作效率得到很大程度的提高。 目前一些国内外的企业已经意识到这些问题,而 快速增长的企业搜索市场吸引了 Google、 IBM、微软等软件巨头的注意,未来搜索技术将进入每个应用程序的接口中。如推出了 Google Search Appliance等本地局域网搜索设备和软件,或者提供了搜索 API供定制开发,还有一些中小型公司提供专
15、业的私有搜索引擎开发。但是仍然无法完全解决问题:如果应用大型公司的技术,成本开支过高,应用功能相对高端却用不上;应用私有技术,却担心技术支持,隐私等等没有保障。通过统计和了解,在大部分企业中,所需要的资源多为 word文档, pdf文件等通用格式,重复冗余度最高,知 识相关性最高的也是此类格式。同时在极大多数企业里,使用率最高的是 Windows操作系统,而自 Windows Vista开始,便内置了Window Search,在 Windows XP中,也可以方便地安装应用,并由微软公司提供基于 P2P 架构的企业级全文搜索系统的设计与实现 2 相关支持。 针对上述问题和特点,我的毕业设计选
16、择了基于 Windows Search API的二次开发,它兼二者优势,成本较低,应用方便简约,同时应用了 P2P架构,在作为资源获取者的同时也成为资源贡献者。并将其本机的简单搜索功能扩展化,网络化,使搜索局域网内文件如同搜索本机一样迅速高效,最 终实现了公司网络内的资源共享流通。将客户机的索引文件汇入网络搜索,并将最终索引存储到内部服务器,形成网络自己的索引。在界面上提供了全文搜索,常用扩展名搜索下载等基本服务,同时在后台可以响应多种高级搜索指令以便专业用户使用,简约而功能卓越。系统在设计时便预留足够的空间可以扩展升级以及定制,在不同的公司和网络间可以方便地进行复用。 本系统的设计目标: 提
17、高搜索质量 1994年,有人认为一个完整的索引将会使得搜索变得十分简单。然而,随着的计算科学技术的迅速发展,事实证明查全率并不是评价搜索质量的唯一因数。大量的“ 无效的”结果常常冲掉用户真正感兴趣的结果。并且,人们仍然只愿意察看结果中的前十几个。因此,伴随的文件系统的庞大,我们需要的极高的查询准确度。事实上,我们希望只返回那些最“最优秀”的文档,而不是数以百计的相关性很小的文档。 极高的查询准确度对于查询之后的文件访问也有重大的意义,用户不必访问大量的结果来找出所需的内容。搜索结果的显示提供了相关性判断的很好的依据。 给搜索结果排序 文件信息是一种很重 要的资源,但是没有被文件搜索引擎很好的利
18、用。根据关键字出现频率、文件访问频率等对文件进行分类排序,这就使其很好的与人 的主观判断相符合。 1.2 论文组织结构 本论文共六章,论文 首先对企业资源重复冗余 , 员工重复相同的资源收集工作的现状进行了描述,分析了其原因,以及现有的解决方案, 介绍了毕业设计项错误 !使用“开始”选项卡将 Heading 1 应用于要在此处显示的文字。 错误 !使用“开始”选项卡将 Heading 1 应用于要在此处显示的文字。 3 目的背景和 意义 。紧接着论文简单概述了毕业设计项目中所用到的各项技术 和原理,对用户的需求和系统的总体设计进行整体的分析和概括 。 然后文章详细地介绍了开发模块和系统实现。在
19、连接方面使用 SOCKET 和线程池进行文件搜索和传输,并实现 P2P;在 UI 方面使用 RAD CONTROL 进行设计,使用户操作体验得到很大的提升。由于是基于 Windows 编程,我 们选择了 C#语言和 Visual Studio 和Windows 7 作为开发环境。同时为了提高开发效率和做好时间管理,我们使用了SCRUM 方法来进行敏捷开发。 安排如下: 第一章 绪论。 介绍了知识型企业在发展和生产过程中 , 资源 共享 和 知识交流的困难 提出局域文件搜索系统的 设计背景 和 目标。 第二章 系统概述和相关技术。 简要介绍了文件搜索引擎基本组成部分, P2P技术,以及开发高效率服务器所需的资源预分配机制, Windows Search 4.0 特性等 第三章 系统分析。针 对用户的 共享文件资源,知识的 需求 , 确定 此 系统的实现目标。此 系统的总体设计 和详细设计,包括系统框架,模块及 其 通信的 介绍 。 第四章 系统实现。 介绍 了此系统的总体实现框架,主要介绍了服务器部分的 开发 。 第五章 系统 测试 和运行结果 。 第六章 展望和 总结 。