本科毕业论文设计、创作
题目 基于W eb搜索引擎的设计与实现
Design and Implementation of Web-based searchengine
学生 卫中 学号 08021 15
所在院系 信息与通信技术系专业 电子信息工程
入学时间 2008 年 9 月
导师 雷迎科 职称/学位 博士
导师所在单位 信息与通信技术系
完成时间 2012 年 5 月
三联学院教务处 制
摘 要
网络中的资源非常丰富但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。本文首先详细介绍了基于英特网的搜索引擎的系统结构然后从网络机器人、索引引擎、W eb服务器三个方面进行详细的说明。在次基础上设计并实现了一种快捷高效的新闻搜索引擎该搜索引擎是从指定的W eb页面中按照超连接进行解析、搜索并把搜索到的每条新闻进行索引后加入数据库,然后通过W eb服务器接受客户端请求后从索引数据库中搜索出所匹配的新闻。关键词搜索引擎;网络机器人;索引引擎;W eb服务器
Abstact
The network resources are very rich, but how eff ective searchinformation is a difficult thing.Build a search engine is the best way to solvethe problem.This paper first introduced the Internet search engine based onthe structure of the system, and then from the network robots, indexingengine, the Web server of the three aspects of the detailed instructions.Based on the time designed and realized a quick and efficient news searchengine, the search engine from the Web page in accordance with specified inthe connection for analytical,search,and the search to every news indexingof add to the database.Then through the Web server accept client requestsfrom database search index after the news of the match.
Keywords: search engine;Network robot; Indexing engine;Web server
目 录
摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
第一章 绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.1搜索引擎出现的背景及意义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.2搜索引擎的发展历史及趋势. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
第二章搜索引擎的结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.1系统概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2搜索引擎的构成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2.1网络机器人. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2.2索引与搜索. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2.3 Web服务器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2.3搜索引擎的主要指标及分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2.4小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
第三章网络机器人. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.1什么是网络机器人. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.2网络机器人的结构分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.2.1如何解析HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.2.2 Spider程序结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3.2.3如何构造Spider程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.2.4如何提高程序性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.2.5网络机器人的代码分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
第四章基于LUCENE的索引与搜索. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.1什么是LUCENE全文检索. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.2 LUCENE的原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.2.1全文检索的实现机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.2.2 Lucene的索引效率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.2.3中文切分词机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.3 LUCENE与SPIDER的结合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.4小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
第五章基于TOMCAT的WEB服务器. . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.1什么是基于TOMCAT的WEB服务器. . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.2用户接口设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.2.1客户端设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.2.2服务端设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.3在TOMCAT上部署项目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
5.4小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
第六章项目总结以及未来工作展望. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
6.1项目总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
6.2未来工作展望. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
致. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
第一章 绪论
1.1搜索引擎出现的背景及意义
网络的出现以及发展对于世界发展的意义是极其重要的它让地球村的理念变成现实信息的传输不再受到时间和空间的限制。在没有搜索引擎的时代用户希望寻找某方面的信息就必须通过各种途径或者是之间的连接寻找可以这样说脱离了搜索引擎的就像是信息海洋中的一个一个孤岛用户必将面临巨大的搜索成本同时必须付出大量的时间和精力。
搜索引擎的出现改变了上述的现象它通过程序的自动搜寻并建立索引将这些信息孤岛联系起来形成了一巨大的信息网并且运用分布式计算的巨大力量能够让用户从海量数据中摒除垃圾信息获取想要的知识。搜索引擎不仅仅是节省了用户的时间通过挖掉搜寻成本这座墙它让许许多多的不可能成为可能。
1.2搜索引擎的发展历史及趋势
搜索经历了三代的更新和发展:
第一代搜索引擎出现于1994年。这类搜索引擎一般都索引少于1 000 000个网页极少重新搜集网页并去刷新索引。而且其检索速度非常慢一般都要等待10秒甚至更长的时间。
第二代搜索出现在1996年。这类搜索引擎系统大多采用分布式方案多个微型计算机协同工作来提高数据规模、响应速度和用户数量它们一般都保持一个大约50,000,000网页的索引数据库每天能够响应10,000,000次用户检索请求。
第三代搜索引擎年代的划分和主要特性至今没有统一的认识不过至少可以肯定
的是第三代搜索引擎是对第二代搜索引擎在搜索技术上的改进主要增加了互动性和个性化等高级的技术为用户使用搜索引擎获取信息获得更好的体验。至于互动性的评价标准是什么以及第三代搜索引擎到底比第二代搜索引擎增加了多少价值——尤其是为企业利用搜索引擎开展网络营销增加了哪些价值 目前并没有非常令人信服的研究结论。这也就是目前所谓的第三代搜索引擎并没有表现出太多优势的原因之
一。
现在网络上有很多著名的搜索引擎百度 google等等百度从2005年诞生到现在成为全球最大的中文搜索引擎可想而知发展的速度是多么的快人们对搜索引擎的的需多么的大百度的日点击率我无法在找到确切的数字但是我们可以计算一下截至2008年底中国网民规模达到2.98亿人每个网民上网点击百度的次数应该不少于十次吧像我们要在百度上找资料的网名点击率百次不止所以百度的日点击率是多么惊人。
搜索引擎经过几年的发展和摸索越来越贴近人们的需求搜索引擎的技术也得到了很大的发展。搜索引擎在将来的的发展趋势大概有以下几个方面
1.提高对用户输入的理解
为了提高搜索引擎对用户检索提问的理解就必须有一个好的检索提问语言为了克服关键词检索和目录查询的缺点现在已经出现了自然语言智能答询。用户可以输入简单的疑问句比如“how can kill virus of computer?”。搜索引擎在对提问进行结构和容的分析之后或直接给出提问的答案或引导用户从几个可选择的问题中进行再选择。 自然语言的优势在于一是使网络交流更加人性化二是使查询变得更加方便、直接、有效。就以上面的例子来讲如果用关键词查询多半人会用“vi ru s”这个词来检索结果中必然会包括各类病毒的介绍、病毒是怎样产生的等等许多无效