密级:页数:信息工程大学毕业设计(论文)题目桌面搜索引擎的设计与实现学员姓名桑亚平学号G200726173所在单位六系二十六队指导教师王益伟技术职务助教完成日期2011-4-23桌面搜索引擎的设计与实现摘要:随着互联网的普及,搜索引擎得到了快速的发展,对人们的日常生活产生了巨大的影响。人们对电脑硬盘容量的要求也越来越大,在电脑硬盘里包含的文件数量也与日俱增,这就使得人们如何很快很准确的找到自己所要想要的那个文件,成了用户的一个难题。随着在海量文件中要找到自己所需文件的难题的出现,桌面搜索就应运而生了。桌面搜索是搜索工具所应用的一个新领域的名称,这个领域是用户拥有的计算机文件的内容,而不是搜索互联网。桌面搜索强调的是挖掘用户个人电脑上全部可用信息,包括网页浏览器历史,电子邮件档案,字处理器文档等等。将搜索引入到桌面,一方面方便了用户的搜索工作,另一方面在搜索结果中整合进本地信息,也让用户实现了搜索时外部信息与本地信息的统一管理利用。关键词:桌面搜索,PDF解析,中文分词目录第一章绪论………………………………………………………………………………(1)1.1桌面搜索引擎的简介…………………………………………………………(1)1.2主流桌面搜索引擎介绍………………………………………………………(1)第二章桌面搜索引擎的总体设计………………………………………………………(4)第三章PDF文件的解析…………………………………………………………………(6)3.1PDF文件的简介…………………………………………………………………(6)3.2PDF的逻辑结构…………………………………………………………………(6)3.3PDF文件解析流程介绍…………………………………………………………(7)第四章中文分词简介……………………………………………………………………(9)4.1分词算法………………………………………………………………………(9)4.2中文分词的应用………………………………………………………………(10)第五章桌面搜索引擎的实现……………………………………………………………(12)第六章结论………………………………………………………………………………(19)参考文献……………………………………………………………………………………(20)1第一章绪论1.1桌面搜索引擎的简介桌面搜索引擎也称为个人桌面引擎或个人硬盘搜索引擎,是对个人电脑上存储的信息进行查找的检索工具。随着计算机以及互联网的普及,网络搜索引擎对人们的生活产生了巨大的影响,同时,现在个人电脑的硬盘容量越来越大,已经达到TB,硬盘里包含的Office文档、电子邮件、保存的网页、PDF文档等的数量都非常大,在如此多的文件中找到自己所需的文件变得很困难,这时候桌面搜索就应运而生。桌面搜索与网络搜索不一样,首先从技术方面看,只有桌面搜索才算是全方位的搜索,它方便快捷,不用连接网络,就能找到用户要查找的内容。它将搜索业务深入到个人电脑中,除了能找到用户所需要的网络信息之外,还可以帮助用户从个人电脑的海量资料中快速地查找到想要的信息。其次,由于在电脑硬盘上的文档之间几乎没有什么联系,因此关于网页排名的算法不适用于桌面搜索,所以对桌面搜索的结果进行排序就不太重要。最后,从市场的角度来看,桌面搜索市场发展的潜力最大,尽管搜索市场竞争非常激烈,但桌面搜索市场的增长潜力被普遍看好。近年来,各大搜索引擎厂商纷纷推出了自己的桌面搜索引擎。1.2主流桌面搜索引擎介绍现在桌面搜索的开发已经成为了互联网领域的最大亮点,也为搜索领域带来了新的发展机会,随着众多厂商的加盟。桌面搜索引擎的竞争日益激烈。目前比较流行的桌面搜索引擎有GoogleDesktop、百度、88Data桌面搜索、网络猪、微软桌面搜索。1.GoogleDesktopSearchGoogle发布了自己的桌面搜索工具:GoogleDesktopSearch,简称为GDS。这是一款强大的计算机硬盘搜索工具。GDS的主要特点有:GDS会自动保留即时通讯的谈话记录,还能复制历史记录,通过GDS可以查找自己的电子邮件、媒体文件、网页历史纪录、文档、Email等内容;拥有先进的搜索技术;不用上网就可以查看浏览过的网页;可以直接通过桌面栏进行搜索;通过快速查找项启动应用程序并立即开始搜索,还可以补充工具栏,将个性化信息集中放置;可以通过开发人员编写的插件补充工具栏。2.百度硬盘搜索百度硬盘搜索是世界上第一款中英文桌面搜索工具。它可以在电脑中快速的查找信息;2还可以根据文件的类型和属性信息,自动生成目录。百度硬盘搜索的功能特点主要有:可以通过添加高级搜索,使查找的结果更准确;可以支持语法搜索;可以给搜索结果页面增加细分目录,进一步缩小搜索范围;增加了很多小功能,方便实用;优化了搜索性能,减小了安装文件的体积;可以支持很多浏览器。3.88Data桌面搜索88Data桌面搜索是国内也是唯一由个人独立开发的体积最小的桌面搜索工具,通过其可以快速搜索系统中的每个角落,你的电子邮件、文档、媒体文件和网页历史记录等内容将即刻显示在你面前。88Data桌面搜索特点:具有良好的中文支持,广泛的文件格式和浏览器支持;系统功能强大,隐私安全保护;系统设置灵活等。4.网络猪网络猪是中国搜索推出新一代搜索引擎,可以使每个人拥有自己的个人信息门户.只要下载领养了网络猪就有了自己的信息平台.网络猪是一个基于搜索引擎并能整合多项功能(如:mp3点歌、视频点播下载电影、聊天、短信、天气预报、定制最新新闻等)的桌面软件。您不需打开IE,只要输入关键词,在桌面就可以搜索信息。网络猪的搜索框可以进行网页、新闻、网站、行业、图片、论坛、词典、等多项搜索。网络猪的主要功能特点有:越过传统的搜索模式,可以实现划词搜索;可以订制专题新闻,设置自己的新闻中心;设有办公小秘书,为用户提供日程提醒、即时贴、常用软件快捷方式等服务;集合型聊天工具,可以将QQ、MSN和网络猪的即时通讯一起应用;设有天气预报功能。5.微软桌面搜索微软MSN推出了桌面搜索软件的测试版,这个MSN搜索工具的主要功能是快速搜索计算机硬盘的文件,Windows的桌面搜索集成在MSN的工具栏里。微软桌面搜索可以即时搜索整台电脑,查找文档、电子邮件、音乐、照片、视频等各种内容。微软桌面搜索的主要功能特点有;拥有桌面、浏览器、资源管理器三种搜索工具栏,可以在这些工具栏中直接输入文字搜索;可以搜索在系统中已经注册的所有文件类型,也可以手动添加位置的文件类型;可以通过选项卡式浏览器提高网页浏览效率;设有弹出窗口阻止程序可以有效的阻止弹出窗口;可以在搜索结果页中突出现实搜索的文字;可以将搜索结果与系统操作高度集成,可直接对搜索结果进行系统右键菜单操作,如:重命名、复制和删除等,支持批量操作,处理搜索结果相当方便。这些都是非常好的桌面搜索工具,受到了广大使用者的好评,但是她们也存在一些不足的地方,例如:它们都是需要安装的软件,虽然安装文件不是很大名单是需要的安装目录比较大,例如GoogleDesktopSearch安装时要求所在分区要有1GB的剩余空间;索引文件很大,GoogleDesktopSearch等默认对全盘进行索引,因此随着时间的增长,硬盘里的索引文件会越来越大,就会影响系统运行速度;虽然微软桌面搜索默认不进行全盘索引,只对“我的文3档”和“DocumentsandSettings”等常用文件夹进行索引,但是它没有给出明确的索引设置说明,增加了操作难度;除了微软的桌面搜索以外,其他的桌面搜索工具都不可对加密的PDF文件进行检索;安全性不够。这是人们最在意的问题,由于桌面搜索引擎功能的强大,对用户的整个硬盘信息进行索引,如果个人计算机接入互联网,就存在着个人隐私暴露以及知识产权泄漏的相关问题。因为当我们利用这些桌面搜索工具进行搜索时,搜索引擎将查询请求发送给两个不同的程序,以GoogleDesktopSearch为例子,一个请求发送到网络,进行网页搜索;另一个将相同的查询请求发送到本地运行的桌面搜索程序,在事先建立的索引中进行查询。另外GDS还会自动的保留用户邮箱里的电邮信息、即时通讯的谈话记录、用户的上网浏览记录,GDS还能复制历史记录,永远把它保留下来,这就意味着即使你已经将一些机密的文件删除了,通过GDS还是能将他们一一搜索出来,将所有的机密暴露无疑。4第二章桌面搜索引擎的总体设计搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎的工作原理大致可以分为:1.搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他中的超链接,就象日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超链结,机器人便可以遍历绝大部分网页。2.整理信息:搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。3.接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。其实搜索引擎的工作非常简单。我们知道蜘蛛是搜索引擎的主要劳动力,肩负着海量信息的筛选和甄别抓取工作。蜘蛛根据网页的重要性、安全性、稳定性和代表性、新颖性、权威性和原创度、深度、广度等因素自动自动读取URL服务器的URL相关列表,按深度优先搜索方式或广度优先搜索方式抓取URL所指向的页面,对抓取的网页用唯一的id文档管理,压缩并存放到数据,待进一步处理,同时网页的所有超链接也会存入URL服务器。搜索引擎还有一项最重要的工作就是,那就是切词和分类。搜索引擎通过启用切词机器人和索引机器人将蜘蛛抓取的网页文档实施切词和类别分析归纳,以关键词在网页中出现的位置和频率分配权值并将切词结果导入索引数据库完成这些工作后,局部或完整更新存放抓取的数据库,当用户搜索某个关键词时,搜索引擎查询机器人将用户输入的信息进行切词处理,检索出所有包含检索词的记录,通过计算网页权重和级别对查询记录进行排序和综合运算,这样用户就可以看到最新的网页信息了。根据客户的需要,设计的桌面搜索引擎应该保证信息的安全;保证查询速度,将查询限5制在本地文件中;保证查询结果的准确性。保证信息安全的解决方案是将查询的文件夹限制在电脑硬盘中,不自动保留用户的即时通讯的谈话记录、用户的电邮信息、用户的上网浏览记录,不复制历史记录。保证查询速度的解决方案是通过简历索引可以提高搜索速度,特别是当电脑硬盘空间很大,文件数量很多时。此次设计的桌面搜索将不包含对硬盘中所有文件进行建索引的模块,但是增加了用户可以对多个文件夹进行查询的要求。另外对用户提出多个关键字进行查询的要求,我们还提出将所有的关键字写入到一个txt文件中,当开始查询时,从用户选定的关键字文件中读取关键字。保证查询结果准确性的解决方案是查询算法采用字符中比较算法。有以上的要求,设计了整个桌面搜索引擎的框架,将全文分为:文件解析模块,中文分词模块,查询模块,用户界面四部分。其中文件解析模块用于将要搜索的文件格式转换为文本文件格式。本文可以搜索的文件格括.txt,.html,.xml,.h,.doc,.PPT,.PD