毕业设计(论文)基于BS结构的搜索引擎应用研究.doc

上传人:仙人指路1688 文档编号:3979010 上传时间:2023-03-30 格式:DOC 页数:44 大小:311.50KB
返回 下载 相关 举报
毕业设计(论文)基于BS结构的搜索引擎应用研究.doc_第1页
第1页 / 共44页
毕业设计(论文)基于BS结构的搜索引擎应用研究.doc_第2页
第2页 / 共44页
毕业设计(论文)基于BS结构的搜索引擎应用研究.doc_第3页
第3页 / 共44页
毕业设计(论文)基于BS结构的搜索引擎应用研究.doc_第4页
第4页 / 共44页
毕业设计(论文)基于BS结构的搜索引擎应用研究.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《毕业设计(论文)基于BS结构的搜索引擎应用研究.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于BS结构的搜索引擎应用研究.doc(44页珍藏版)》请在三一办公上搜索。

1、摘 要 随着Internet的飞速发展,人们越来越依靠网络来查找他们所需要的信息,但是,由于网上的信息源多不胜数,也就是我们经常所说的RichData,PoorInformation。所以如何有效的去发现我们所需要的信息,就成了一个很关键的问题。为了解决这个问题,搜索引擎就随之诞生。本文从搜索引擎的应用出发,探讨了搜索引擎的作用,提出了搜索引擎的功能和设计要求,在对搜索引擎系统结构和工作原理所作分析的基础上研究了页面爬取,解析等策略和算法,并使用了JAVA实现了一个程序对其运行结果做了分析。关键词 搜索引擎;java;Eclipse;字符Based on B / S Design and im

2、plementation of search engineComputer Science Department Major:Computer Science & TechnologyNo.:07190240 Name: LiuJianXiong Tutor: LinMugangAbstract This application from the search engines, discusses the role of search engines, search engines put forward the function and design requirements, struct

3、ure and the search engine system based on the principle of the analysis of the page crawling, parsing and other strategies and algorithms, and use JAVA program to its operating results have been analyzed. Key Words search engine; java目 录1 项目背景11.1 搜索引擎现状分析11.2 课题开发背景11.3搜索引擎的组成和工作过程31.3.1 搜索器31.3.2

4、索引器41.3.3 检索器51.4搜索引擎的分类61.5当前搜索引擎的关键技术101.5.1网络蜘蛛技术101.5.2基于相关度的排序121.5.3基于概念的检索122 系统开发工具和平台142.1 关于JAVA语言142.2 Eclipse介绍152.2.1Eclipse历史152.3 servlet的原理163 系统总体设计183.1系统总体结构183.2搜索策略184 系统详细设计194.1 界面设计实现194.2 设计代码分析194.3 servlet的实现234.4 网页的处理队列244.5搜索字符串的匹配254.6 搜索引擎的实现255 系统测试396 结论41参考文献431 项目

5、背景 1.1 搜索引擎现状分析互联网被普及前,人们查阅资料首先想到的便是拥有大量书籍的图书馆,而在当今很多人多会选择一种更方便,快捷,全面准确的方式互联网,如果说互联网是一个知识宝库,那么搜索引擎就是打开知识宝库的一把钥匙,搜索引擎是随着WEB信息的迅速增加,从1955年开始逐渐发展起来的技术,用于帮助互联网用户查询信息的搜索工具,搜索引擎以一定的策略在互联网中搜集,发现信息,对信息进行理解,提取,组织和处理,并为用户提供检索服务,从而起到信息导航的目的。目前搜索引擎已经成为倍受网络用户关注的焦点,也成为计算机工业界和学术界争相研究,开发的对象。目前较为流行的搜索的引擎已有Google,Yah

6、oo,Ifno seek,baidu等。出于商业机密的考虑,目前各个搜索引擎使用的Crawler系统的技术内幕一般都不公开,现有的文献也仅限于概要性介绍,随着WEB信息资源呈指数级增长及WEB信息资源动态变化,传统的搜索引擎提供的信息检索服务已不能满足人们日益增长的对个性化服务的需要,他们正面临着巨大的挑战,以何种策略访问WEB,提高搜索效率,成为近年来搜索引擎研究的主要问题之一。1.2 课题开发背景目前虽然有多种搜索引擎,但各种搜索引擎基本上由三部分组成:(1)在互联网上采集信息的网页采集系统:网页采集系统主要使用一种工作在互联网上的采集信息的”网络蜘蛛” 。”网络蜘蛛”实际上市一些基于WE

7、B的程序,利用主页中的超文本链接遍历WEB,利用能够从互联网上自动收集网页的”网络蜘蛛”程序,自动访问互联网并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集到网页数据库中。(2)对采集到的信息进行索引并建立索引库的索引处理系统:索引处理系统对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL,编码类型,网页内容包含的关键词,关键词位置,生成时间,大小与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链接中每一个关键词的相关度(或重要性),然后建立索引并存入到网页索引数据库中,索引数据库可以采用通用的大型数据库,

8、如Oracle,Sybase等,也可以定义文件格式进行存放,为了保证索引数据库中的信息与WEB内容的同步,索引数据库必须定时更新,更新频率决定了搜索结果的及时性,索引数据库的更新时通过启动”网络蜘蛛”对WEB空间重新搜索来实现的。(3)完成用户提交的查询请求的网页检索器:网页检索器一般是一个在WEB服务器上运行的服务器程序,它首先接收用户提交的查询条件,根据查询条件对索引库进行查找并将查询到的结果返回给用户,当用户使用搜索引擎查找信息时,网页检索器接收用户提交的关键词,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页,有的搜索引擎系统综合相关信息和网页级别形成相关度数值,然后进行

9、排序,相关度越高,排名越靠前,最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户,典型的搜索引擎系统如Google就是采用这种策略。信息的飞速增长,使搜索引擎成为人们查找信息的首选工具,Google、百废、中国搜索等大型搜索引擎一直是人们讨论的话题. 捏索引擎技术的研究,国外比中国要早近十年,从最早的Archie,到后来的 Excite,以及 ahvista、overture,Google等搜索引擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开始研究搜索引擎是在上世纪末本世纪初。在许多领域,都是国外的产品和技术一统天下,特别是当某种技术在国外研究多年而国内才开始

10、的研究的情况下,例如操作系统、宇处理软件、浏览器等等,但搜索引擎却是个例外. 虽然在国外搜索引擎技术早就开始研究,但在国内还是陆续捅现出优秀的搜索引擎,像百度、中搜等。随着搜索引擎技术的成熟,它将成为获取信息、掌握知识的利器. 但是现有的索引擎,对于用户所提出的查询要求仅限于关键词的简单逻辑组合,搜索结果重视的是返回的数量而不是质量,在结果文档的组织和分类上也有所欠缺. 国外的一次调查结果显示,约有71%的人对搜索的结果感到不同程度的失望. 因此,如何提高搜索引擎的智能化程度,如何按照知识应用的需要来组织信息,使互联网不仅提供信息服务,而且能为用户提供知识服务,将成为计算机工业界和学术界有待研

11、究的方向。1.3搜索引擎工作原理 搜索引擎的原理,可以看做三步:从互联网上抓取网页建立索引数据库在索引数据库中搜索排序。1. 从互联网上抓取网页 利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。2. 建立索引数据库 由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后

12、用这些相关信息建立网页索引数据库。3. 在索引数据库中搜索排序 当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。 最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。搜索引擎一般由Crawler、分析器、索引器、索引数据库、检索器和用户接口组成9。Crawler以广度优先或深度优先的方法从Web上下载页面;分析器对下载页面的内容进行分析以用于索引,具体包括分词、过滤、转换等工作;索引器将文档表示为一种便于检索的方式并存储在索

13、引数据库中,一般采用的方法有矢量空间模型(Vector Space Model)、倒排文档、概率模型等;检索器实现用户查询关键词和目标文档匹配度的计算,根据计算结果所有符合查询要求的页面URL按照相关度递减的顺序排列,并返回给用户;用户接口为用户提供一个输入查询请求,定制查询结果的Web页面并将查询结果格式化后返回给浏览器。1.3搜索引擎的组成和工作过程搜索引擎在执行用户的查询时并不真正地搜索互联网上的每一个网页,它搜索的实际上是预先整理好的网页索引数据库。对一个普通的搜索引擎而言,一般由搜索器、索引器、检索器和用户接口等四个部分组成。1.3.1 搜索器搜索器的功能是在互联网中漫游,以便发现和

14、搜集信息。它常常是一个日夜不停地运行的计算机程序。它要尽可能多、尽可能快地搜集各种类型的新信息和定期更新已经搜集过的旧信息,以保证用户及时得到最新信息和避免死连接、无效连接。目前搜集信息的策略有两种:1)从一个起始URL集合开始,顺着这些URL中的超链(Hyperlink),以宽度优先、深度优先或启发式方式循环地在互联网中发现信息。这些起始URL可以是任意的URL,但常常是一些非常流行、包含很多链接的站点(如Yahoo!、新浪等)。2)将Web空间按域名、工P地址或国家域名进行划分,每个搜索器负责一个子空间的搜索。搜索器搜集的信息类型多种多样,包括HTML, XML, Newsgroup文章、

15、PDF文件、字处理文档、多媒体信息。搜索器的实现常常用分布式、并行计算技术,以提高信息发现和更新的速度。商业搜索引擎的信息发现可以达到每天几百万网页。1.3.2 索引器索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。索引器首先对搜索到的信息进行信息预处理,因为搜索器访问到的是不同组织形式的数据信息,如各种数据库、不同文件系统以及网络Web页面等等。在预处理过程中,不同格式的文档(如Microsoft Word, WPS, Text, HTML等、都将被转换成统一的标准格式一文本文档。在预处理后,就可以对信息建立索引,一般地,建立信息索引包含下面几个步

16、骤:1)词的切分和词法分析在汉语里,词是信息表达的最小单位,在西文语言里,单词是表达信息少最小单位。而汉语不同于西方语言的是,其句子的语词间没有分隔符(空格)因此需要进行语词切分。汉语里词的切分常存在歧异性、模糊性,如句子“使用户满意”可切分为“使/用户/满意”,也可能被错误地切分为“使用/户/满意”。因而需要利用各种上下文知识解决语词切分的歧异性和模糊性。此外还需要对词进行词法分析,识别出各个语词的词干,以便根据词干建立信息索引。2)进行词性标注及相关的自然语言处理在切分的基础上,利用基于规则和统计的方法进行词性标注、识别重要f短评结构。目前,比较常用的方法是:在基于“短语结构语法”和“齐夫

17、率”的基础上14,再使用“复杂特征集”、“词汇主义”、“统计语言模型”等方法。3)建立检索项索引需要注意的是:全文检索不等于like %keyword%。若使用这种搜索方式其搜索过程就变成类似于一页页翻书的遍历过程了,这样在响应时间、搜索准确度等方面都远远不能满足用户的需要。一般使用排好序的关键词列表,用于存储关键词二补文章编号(或URL)的映射关系,也即用倒排文件的方式建立检索项相关信息(如表1所示)。相关信息一般包括“检索项”、“检索项所在文件位置信息”以及“检索项权重”。例如,检索项“计算机”的位里信息为文档D中第n段第m句第w词”。这样,在信息检索时,用户可以要求在查询中,检索项Tl和

18、检索项T2位于同一语句或同一段落中。检索项索引的建立原则是要易于文档信息的更新处理。索引项有客观索引项和内容索引项两种:客观项与文档的内容无关,如作者名、URL、更新时间、编码、长度等等;内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。内容索引项可以分为单索引项和多索引项(或称短语索引项)两种。单索引项对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);对于中文等连续书写的语言,必须进行词语的切分(对字进行索引或搜索是无任何愈义的)。在建立索引时,一般要给每个索引项赋与一个权值,以表示该索引项对文档的区分度,同时用来计算查询结果的相关度。使用的方法一般有

19、统计法、信息论法和概率法。索引表一般使用某种形式的倒排表,即由索引项查找相应的文档。索引表也记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系(proximity)。索引器可以使用集中式索引算法或分布式索引算法。当数据t很大时,必须实现即时索引(Instant工ndexing),否则不能够跟上信息f急剧增加的速度。索引算法对索引器的性能(如大规模峰值查询时的响应速度)有很大的影响。一个搜索引擎的有效性在很大程度上取决于索引的质量。1.3.3 检索器检索器的功能是根据用户输入的查询关键字在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用

20、户相关性反馈机制。检索器常用的信息检索模型有布尔模型、向量空间模型、概率模型和混合模型四种。信息检索评价的标准是信息检索的精度和召回率。信息检索的精度为检索结果中相关信息文档数与查询结果总数之比。信息检索的召回率为实际检索出的相关信息文档数与信息库中总的相关信息文档数之比。为了提高搜索引擎的性能和方便用户,常使用以下一些技术:1)查询扩展处理查询扩展处理是为了提高信息检索的召回率。这种处理根据同义词词典和语义蕴涵词典扩展查询检索项。同义词扩展,如“计算机”和“电脑”指同一概念;因而查询“计算机”同时也要查询“电脑”,反之亦然。主题蕴涵扩展(也即是下位词扩展)是指不但要查询检索词,而且还要查询其

21、中所包含的子概念。比如,主题词“艺术”包括“电影”、“舞蹈”、“绘画”等等。“电影”又包括“故事片”、“记录片”等。因此,查询“艺术”当然包括“电影”、“舞蹈”、“绘画”以及其下的子概念。2)利用向量空间模型实行相关查询反馈处理利用向量空间模型实行相关查询反馈处理是为了提高信息检索的精度。即用户从初次查询的结果中,选择内容重要的文档或文档片断,让搜索引擎依据所选文档的特征,重新进行查询,从而提高查询精度。3)智能代理搜索引擎除了被动搜索外,也可利用智能代理技术进行主动信息检索。信息检索系统智能用户代理,可根据用户事先定义的信息检索要求,在网络上实时监视信息源,如指定Web页面的更新、网络新闻、

22、电子邮件、数据库信息变化等。并将用户所需的信息,通过电子邮件或其它方式,主动提供给用户,用户无须反复搜索所需信息,这样将大大减少用户检索信息的时间。4)信息分类和摘要为了方便用户从查询结果中选择所需信息,搜索引擎可将提供给用户的文档信息按照文档内容进行分类,并为每一篇文档产生简短摘要。搜索引擎根据文本检索项的统计特征,对查询结果进行分类和摘要。例如,用户查询检索项“计算机”,相应的结果分类也许为“分类1”:“网络”、“系统”、“路由器”等; “分类2: “市场”、“产品”、“销售”等:以及其它分类。分类的目的是便于用户找到相关信息。1.4搜索引擎的分类实际上,通常意义上的搜索引攀只是信息检索系

23、统的前端,面向用户的一端,而整个信息检索还包括后端的收集、索引信息等功能模块。由于Web信息检索系统很多,功能上也有差异,人们在充分利用这些便利搜索工具的同时,也会感到无所适从,无从选择。据统计,各种各样的网络信息搜索工具已经有上千种。从不同的角度,其分类也各不相同。如果按搜索引擎所覆盖内容的范围来分,可分为通用型、专业型和特殊型搜索引擎。通用型搜索引擎所采用的信息资源极为广泛,对资源的主题范围和数据类型基本没有限制。所以它适用于各种用户,人们可以利用它来检索几乎任何方面的内容。如Google就是这类工具。专业型搜索引擎往往是着重某一主题范围内的信息资源,比如专门用于收集医药的HealtbCa

24、te.MedicalWorld Search以及法律的搜索引擎LawCrawler等等,这类搜索引擎对于该专业的信息收集与查询其查全率和查准率是极高的。而特殊型搜索引擎往往是指那些用来检索某一类型信息或数据的搜索工具,比如搜索电话号码的Switchboard,查询地图的WebSEEK、搜索FTP文件的Archie和File Z等等。如果从是否有人参与索引来分,可分为人工搜索引擎和智能搜索引擎。人工搜索引擎主要是由人工来建立,主要依靠网络信息发布者的主动登记,主要将要发布的信息按搜索引擎的主题树归类,填写信息源站点的地址,给出主题关键词和摘要等等信息,由于个人的分类习惯和方法都难免带有主观性和片

25、面性,分类具有差异性。另外,主题分类树的形状、平衡性等都能直接影响信息收集的质量和效果,其建立与维护也是一个难题。而智能搜索引擎不需要人工登记信息,不需要人的主动参与,它依靠像“网络机器人(Robot) 一样的程序在网络上不停地爬行和搜索,能够自动获取网络上的信息,并自动进行分类、索引、摘要等。随着人工智能、机器学习和其它智能信息处理技术的发展,智能搜索引擎对网络信息的分析和处理也越来越准确、合理了。智能搜索引擎包括自动文摘、自动分类、自动索引等等技术,在中文搜索引擎中还包括自动分词。如果从检索的分布情况来分,可分为集中式检索系统和分布式检索系统。如果按检索层次来分,可分为检索型、目录型、原搜

26、索引擎和信息代理Agent。所以说要从一个统一的标准来对搜索引擎进行分类是一件困难的事情,下面就从不同的角度来对各类搜索引擎的特点、设计思想进行分析介绍。(1)检索型搜索引擎(Search Engine)检索型搜索引擎就是为用户提供输入关键词查找信息的搜索引擎。它检索方便直接,可以使用布尔逻辑查询、短语查询、邻近查询、模糊查询、自然语言查询等等检索方式,Hotbot、 Inforseek、Google等就是这类检索型工具的典型代表。它们有着自己的收益、组织资源的机制,通过对网页内容和特征的分析,建立自己的索引数据库,为用户提供查询服务。(2)目录型搜索引擎(Directory)除了基于网页分析

27、建立索引的网页搜索引擎外,还有一种以人工方式或半自动方式搜集信息的搜索引擎一目录型搜索引擎。目录型搜索引擎也称为分类式搜索引擎,这种搜索引擎是由编辑人员根据信息资源的内容按一定的主题进行分类组织,并形成信息摘要,将信息置于事先确定的分类框架中,组织成一层一层的分类目录,目录下面有更具体的子旧录。信息的类别也由大到小、由粗到细。整个搜索引擎形成了一个层次型的类别目录,用户可以逐层浏览,选择不同的主题对网络信息进行过滤,所选择的主题类别越小,信息的相关度就越高,用户就越有可能找到自己所需要的信息。这类搜索引擎的性能主要取决于对于获取网页的人工归类,或自动分类算法的精确度如何,其代表有:Yahoo,

28、 LookSmart, OpenDirectory。 Snap, Lycos, GoGuide等。比如中文搜索引擎一新浪(Sina)的分类目录就有15大类目录,一万多个子目录。中文雅虎(yahoo)也有14个一级目录,最深有6级子目录,目录之间还提供交叉访问。目录型搜索引擎的分类体系一般是根据所采集的资源范围来设计目录体系的,或者采用图书馆分类方法,所以不同的搜索引擎其分类也各不相同。目录型搜索引擎和检索型搜索引擎各自更适用于不同的搜索需求,两者可以相互补充,但不可以相互替代。当用户需要查找关于某类内容的资料或某个网站时,目录型搜索引擎是最适用的。而查询一些比较具体的资料时,用检索型搜索更好。

29、而现在的大多数搜索引擎都同时提供检索关键词和目录浏览两种检索方式,这成为混合型搜索引擎,它可以借助于分类目录来缩小检索范围,达到更为精确和更高效的检索结果。(3)元搜索引擎(Meta Search Engine)由于单个搜索引擎的覆盖范围往往不会太广,为了找到自己所需要的信息,用户常常需要使用多个搜索引擎,以期找到更多更全的信息,但由于不同的搜索引擎其查询语法、接口界面往往不同,需要用户重新学习和适应不同的检索方法,这给用户使用多个搜索引擎带来了极大的不便。为了解决这个问题,研究人员开发了元搜索引擎。元搜索引擎是独立于索引系统的查询工具,它统一了不同的搜索引擎的查询接口,用户面对的多个搜索引擎

30、的界面是一样的,由统一的元搜索引擎的接口对用户的查询请求进行处理,分别将其查询转换为符合底层搜索引擎查询语法的子查询,同时向多个搜索引擎递交,由底层搜索引擎在各自的索引数据库中进行查询,在各个搜索引擎返回检索结果后,元搜索引擎将子查询结果进行汇总、去重、重新排序等处理,最后向用户返回搜索引擎的检索结果。元搜索引擎一般都没有自己的数据库,而是利用其它的搜索引擎的数据库来进行服务。在层次上,元搜索引擎要比检索型搜索引擎和目录型搜索引擎要高,缺点是不能够充分使用下层搜索引擎的排序功能,用户需要做更多的筛选。这类搜索引擎的代表是MetaCrawler,SavvySearch, Informaker等。

31、例如MetaCrawler可以同时检索九个搜索引擎,有Yahoo, OpenText, Lycos, WebCrawler, InforSeek, Excite, Inktomi, Galaxy,Altavista等;经过去重,并根据自己的相关度排序算法进行结果重排。(4)信息检索代理Agent信息检索代理Agent是一种主动信息检索技术,它可以根据用户事先定义的信息检索要求,甚至能从用户的日常检索行为、浏览行为中学习用户兴趣、推理用户隐含的需求,并利用已有的检索服务如上述检索服务系统),主动从Web上检索相应的信息资源,实时监测信息源的动态变化等,并将有关信息以电子邮件的方式或其它方式,及时

32、主动地通知用户。如:Washington大学开发的ShopBot, CamegieMellon大学开发的WebWatcher, Standford大学开发的Fab等代理系统。(5)分布式(Distributed)搜索引擎分布式搜索引擎和集中式搜索引擎是相对而言的。集中式搜索引擎所有功能都集中在一台服务器上,存在着数据库过大、维护困难、查询效率及可靠性不高等不足。而分布式搜索引擎从体系结构上解决了这个难题,它主要是根据地域、主题或其它的划分标准建立分布的子检索服务器,索引数据库由分布的数据库组成。因为扩充性较好,所以搜索引擎覆盖的范围可以变得很大,而且各子服务器能够进行独立搜索,相互之间可以交换

33、信息。如果一个检索服务器上没有用户所需要的信息,查询请求将被重定向,被发送到别的子检索服务器上继续查询。分布式搜索引擎的优点在于各个子服务器能协同工作,共享他们所搜集的信息,从而具有较高的整体吞吐能力,划分之后的索引数据库各自索引各自的区域,每个索引数据库减小,重复信息没有或很少,这大大提高了查询的响应速度,各个子服务器同时进行收集工作,减少了获取信息的时间。像WebAnts, NWI等就是这类搜索引擎。Inktomi就是由160台SUN工作站构成的分布式搜索引擎,每台工作站的索引数据库内容不同,这些工作站通过局域网由专门的Web服务器向用户提供查询服务。(6)基于客户端(Client-Bas

34、ed)的搜索引擎基于客户端的搜索引擎将搜索算法内嵌在Web客户程序(如浏览器)中,直接在客户端执行。它的优势在于可以根据用户的不同情况分别进行搜索,对单个用户具有很好的适应性,但是它必须下载每一篇文档,才能判断其相关与否,这样在找到文档以前就下载了很多无关的文档,占用了不应有的带宽,所以速度较慢,而且如果每个客户程序都使用自己的内嵌程序来进行搜索的话,造成的网络负担也是特别重的,难以在较大范围内推广使用。如FishSearch就是客户端搜索引擎形式,虽然这种客户端搜索并不值得推广,但是其思想对于实现搜索引擎的个性化机制却有很大的借鉴意义的。1.5当前搜索引擎的关键技术1.5.1网络蜘蛛技术 网

35、络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。 对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,

36、无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页面的平均大小为20K计算(包含图片),100亿网页的容量是1002000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。 在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先(如图2.1所示)。广度优先是指网络蜘蛛会先抓取起始网页中链

37、接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,下图的说明会更加明确。由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了访问的层数。例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1层,G、H属于第2层,I属于第3层。如果网络蜘蛛设置的访问层数为2的话,网页I是不会被访问到。这也让有些网站

38、上一部分网页能够在搜索引擎上搜索到,另外一部分不能被搜索到。对于设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。图2.1 网络蜘蛛的广度和深度搜索策略图。 网络蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页权限的问题,有些网页是需要会员权限才能访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓取(下小节会介绍),但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的权限验

39、证。1.5.2基于相关度的排序搜索引擎的检索结果往往过于庞大,用户一般只会浏览前面的一部分结果。通过对检索结果进行相关度排序,搜索引擎试图使相关的文档尽可能地出现在结果的前面部分,以改进检索结果的输出。虽然各个搜索引擎中相关度排序的具体实现各不相同,但是基本上都采用了基于Web文档内容的方法,即考虑用户所查询的词条在文档中的出现情况,包括:词条频率、逆文档频率、词条位置等因素。这种方法有很大的局限性。一方面,相关度高的页面不一定是用户普遍欢迎的页面:另一方面,有些Web页面的作者利用上述因素来欺骗搜索引擎(spamming)12,以提高其页面的排序。事实上,Web中还蕴含了丰富的结构信息。页面

40、之间的超链反映了页面间的引用关系,一个页面被其它站点引用的次数基本上反映了该页面的受欢迎程度(重要性)。超链中的标记文本(anchor)对链宿页面191也起到了概括作用,这种概括在一定程度上比链宿页面作者所作的概括(页面的标题、关键字、摘要)要更为客观、准确。因此,近年来出现了一些基于超链的相关度排序方法,作为基于内容方法的补充,例如,Stanford大学研究的Pagerank算法等4。这类方法通过为Web页面构造引用图,并综合考虑页面的被引用次数以及链源页面的重要性来判断链宿页面的重要性。目前一些搜索引擎已经开始使用基于超链的相关度排序方法。例如,以Pagerank为核心技术的搜索引擎Goo

41、gle。能够查询与用户请求相关的“权威”页面。此外,Google通过分析超链中包含的文本,可以对链宿页面进行非全文索引,而不需要下载和分析实际的页面。目前,Google己经发展成为一个主要的搜索引擎,实际下载并索引了近1亿多的Web页面。但是通过超链分析,其覆盖度达到了4.28亿10,超过了其它任何搜索引擎。1.5.3基于概念的检索大多数搜索引擎提供的检索服务是一种关键字检索(keyword search),即检索出那些显式地包含用户指定词条的文档。由于自然语言中广泛存在同义和多义现象,关键字检索显然是不够的。一些搜索引擎,例如Magellan,开始在关键字检索的基础上引入基于概念的检索(co

42、ncept search)1。该方法利用了词条在概念上的相关性,因此可以检索出那些并不显式地包含用户指定的词条,但是却包含其同义词或者下位词的文档。例如,用户向Magellan查询robot”时,Magellan除了返回包含“robot”的结果,还会找到提及,Crawler,Spider, wander”等词条的结果。这样,既方便了用户请求的输入,也提高了信息检索的召回率。搜索引擎在实现基于概念的检索时,一般通过对用户的查询进行概念/词条扩展,然后转化为关键字检索。概念/词条关系的获得可以有以下两种方法。(1)手工建立词典来存储概念层次及词条之间的交叉联系,该工作通常由领域专家来完成。(2)使

43、用语法分析、统计等技术从文档集合中自动学习。2 系统开发工具和平台 2.1 关于JAVA语言Java语言是由Sun公司于1995年推出的一种新的编程语言,它是一种跨平台、适合于分布式计算环境的纯面向对象语言Java语言及其扩展正逐步成为互联网应用的规范,掀起了自PC机以来的又一次技术革命。一般认为,B语言导致了C语言的诞生、C语言演变出C+语言,而Java语言则明显带有 C+语言的特征。Java总是和C+联系在一起,而C+则是从C语言派生而来的,所以Java语言继承了这两种语言的大部分特性。Java的语法是从C继承的,Java许多面向对象特性都受到 C+的影响。事实上,Java中几个自定义的特

44、性都来自于或可以追溯到它的这些前驱语言。略有不同的是,Java语言完全面向对象,从而摒弃了二者的不足之处。Java语言的诞生与过去约30年中计算机语言的不断改进和发展密切相关。Java是由 James Gosling, Patrick Naughton, Chris warth,Ed Frank以及Mike Sheridan等人于1991年在Sun Microsystems公司设计出来的,开发第一个版本花了18个月时间。该语言最初名叫“Oak,后来发现“0ak已经是sun公司另外一种语言的注册商标,于1995年更名为“Java”,即太平洋上一个盛产咖啡的岛屿的名字。从1992 的秋天Oak问世

45、,到1995春天公开发布Java语言,许多人都对Java的设计和改进做出了贡献。自从于1995年被正式推出之后,Java语言就以其独特的优势迅猛发展,经过短短 8、9年时间,成为迄今为止最为优秀的面向对象语言。Java也从当初的一种语言而逐渐形成一种产业,基于Java语言的J2EE架构己成为微软.NET平台的强大竞争对手。当初,Java语言最初的发布不亚于一场革命,但它并不标志着Java快速革新时代的结束。在 Java 1.0发布后不久,Java的设计者就已经制定出了Java 1.1、Java l.2. 、Java 1.3、Java l.4、Java 2, Java 2.1.4 版。作为当前一

46、种被当前广泛使用的面向对象编程语言,Java具有多方面的特点。如果与其他众多的编程语言作一下比较,会发现这些特点正是Java语言之所以如此风靡的原因所在。虽然Java在某些方面 (例如资源耗费 也存在一些不足,但这丝毫不影响Java作为目前最为优秀面向对象编程语言的地位。Java是一种被广泛使用的网络编程语言,这是一种新的计算概念。网络环境下的编程语言最需要解决的是可移植性和安全性问题。以字节方式进行编码,使得程序不受运行平台和环境的限制成为可能。Java语言还提供了丰富的类库,使程序设计人员可以根方便地调用相关类建立起自己的系统。Java作为一种高级程序设计语言,它除具有面向对象、编写简单、

47、脱离机器结构、具有分布性、鲁棒性、可移植性、安全性特点外,并且提供了并发机制,解释执行具有很高的性能。2.2 Eclipse介绍Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C+、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。2.2.1Eclipse历史Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡

48、献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版架构Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。RCP包括下列组件:核心平台(启动Eclipse,运行插件)OSGi(标准集束框架)SWT(可移植构件工具包)JFace(文件缓冲,文本处理,文本编辑器)Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards)Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。E

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号