搜索引擎的设计 毕业设计论文正文.docx
- 文档编号:27621073
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:38
- 大小:255.24KB
搜索引擎的设计 毕业设计论文正文.docx
《搜索引擎的设计 毕业设计论文正文.docx》由会员分享,可在线阅读,更多相关《搜索引擎的设计 毕业设计论文正文.docx(38页珍藏版)》请在冰豆网上搜索。
搜索引擎的设计毕业设计论文正文
1绪论
1.1课题的研究背景
随着计算机网络的不断发展,越来越多的用户以及开发人员深切地感受到了计算机技术在搜索领域中的作用越来越重要,越来越要求搜索引擎执行效率。
掌握计算机是生活的需要,是职业的需要,更是产业发展的需要,更是为了创造更高的经济利润的需要。
信息在社会和经济的发展中所起的作用越来越为人们所重视。
随着网络的迅速发展,万维网称为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。
搜索引擎作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
在计算机的三大主要应用领域(科学计算、数据处理与过程控制)中,数据处理的比重约占70%左右。
计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类信息系统对数据管理的要求,在文件系统的基础上发展起了数据库系统。
数据库技术产生于60年代末,70年代初期,其主要目的是有效地管理和存取大量的数据资源。
数据库技术主要研究如何存储、使用和管理数据,是计算机数据管理技术发展的最新阶段。
数据库存储的是通用化的相关数据集合,它不仅包括数据本身,而且包括数据之间的联系。
30多年来,数据库在理论上、实现技术上均得到很大的发展,研制出许多商用数据库管理系统,使得计算机应用渗透到各行各业的各类管理工作中。
现在,数据库技术已成为计算机领域里最重要的技术之一,是软件学科的一个独立分支。
近年来,数据库技术和计算机网络技术的发展相互渗透、相互促进,已成为当今计算机领域内发展迅速、应用广泛的两大领域。
数据库系统是数据处理的核心机构,售楼管理系统、办公自动化系统、决策支持系统等都是使用了数据库管理系统或数据库技术的计算机应用系统。
互联网已经进入大家的生活,利用互联网来获取有价值的信息势在必行。
本课题主要是实现一个搜索引擎,主要功能是抓取网络上的网页中的信息,进行过滤返回相关有用的信息。
通过本系统,用户只需输入关键字,系统进行处理后,将会返回与关键字相关联的信息。
1.2课题的研究现状
目前为止,随着互联网的普及,使用计算机的人越来越多,那么需要查找信息的的功能就越显得重要。
从而使得搜索引擎应需求而生,搜索引擎作为一个辅助人们检索信息的工具已经显得越来越重要。
搜索引擎按其工作方式可以分为三种,分别是全文搜索引擎,目录搜索类引擎和元搜索引擎。
全文搜索引擎是常用的搜索引擎,大家最熟悉的就是国外的代表Google,和国内的XX。
它们通常都是提取各个网站的网页文字存放在建立的数据库中,检索与用户查询条件匹配的相关记录,然后按其自己设定的排列数序将结果返回给用户。
目录索引,就是将网站分类,然后存放在响应的目录里,用户在查询所需要的内容时有两种选择,一种是关键字搜索,另一种是按分类目录一层一层的查找。
目录索引只能说有搜索功能,但仅仅是按照目录分类的网站链接列表。
用户完全可以不用进行关键字查询,仅靠分类目录也可以找到需要的信息。
目录搜索型引擎中最具代表性的是Yahoo。
元搜索引擎可以同时在其他多个引擎上进行搜索,将搜索结果进行统一处理,并将结果以统一的格式返回给用户。
正因为如此,这类搜索引擎的有点是返回结果的信息量更全面,但是缺点就是无用的信息太多不能准确的找到用户所需要的结果。
在搜索结果排列方面,不通的元搜索引擎有不通的结果排列的方式,如Dogpile,就直接按来源引擎排列搜索结果,如Vivisimo,是按自定的规则将结果重新进行排列。
网络快速发展的今天,互联网承载着海量的信息,能够准确快速的提取我们所需要的信息是现在的挑战。
传统的搜索引擎有Yahoo,Google,XX等,这些检索信息的工具是每天访问互联网的必经之路。
但是,这些传统性搜索引擎存在着局限性,它不能全面的准确的找到所需要的信息,也会使一些和需求无关的内容一起搜索到。
严重的降低了使用这些信息的效率,所以说提高检索信息的速度和质量是一个专业搜索引擎的主要研究内容。
1.3课题的研究意义
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。
然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
在这些学科的基础上,形成信息收集和加工的方法,从而形成一个实用的、高效的系统。
1.4课题的发展趋势
网络爬虫有两种描述方式,一种是基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式,另一种描述方式是建立目标领域的本地或词典,用于从语义角度分析不同特征在同一主题的重要程度。
随着AJAX/Web2.0的流行,如何抓取AJAX等动态页面成了搜索引擎急需解决的问题。
如果引擎依旧采用爬的机制,是无法抓取到AJAX页面的有效数据的。
对于AJAX这样的技术,所需要的爬虫引擎必须是基于驱动的。
如果想要实现事件驱动,首先需要解决以下问题:
第一,JavaScript的交互分析和解释;第二,DOM事件的处理和解释分发;第三,动态DOM内容语义的抽取。
1.5课题的主要内容介绍
本论文共分为5个章节,分别为:
绪论、系统相关技术的研究、系统需求分析、系统的总体设计和代码设计与实现。
第一章绪论,共分为课题的研究背景、研究现状、研究意义、发展趋势和主要内容介绍等5条,从整体上对本课题进行了分析,使得对于本课题的开发过程有一个大概的了解。
第二章是系统相关技术的研究,主要介绍了本课题所采用的各种相关技术。
首先介绍了JAVA,说明开发本课题的主要技术是怎样使用的。
然后介绍了所用到的后台的数据库,以及与数据库的连接技术。
最后介绍了开发过程中用到的JAVA相关的技术的使用,并分析了该技术的特性。
第三章是系统需求分析,从系统的可行性方面和需求方面来分析系统的需求,可行性分析是从技术、经济上和管理上来进行阐述最后得出结论有必要开发这个系统;而需求分析是从用户的角度、系统资源方面、性能需求方面以及功能需求方面来对系统进行分析。
第四章是系统的总体设计,从系统的设计分析、数据表的结构规划对系统进行总体设计,其中设计分析是用了系统功能分析,系统功能模块设计,数据库需求分析,数据库设计,覆盖了需求分析中所要求达到的功能需求。
第五章是代码设计与实现,系统分为本地搜索、网络搜索两大模块组成,每个部分又可以分成很多小模块。
每个模块进行截图分析设计的同时都进行详细设计,写出了它们的关键代码。
2系统相关技术的研究
2.1JAVA简介
Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2PlatformEnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java的特点:
1、Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java语言是解释型的。
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
2.2MySQL数据库简介
MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
相对于其它系统而言,MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
MySQL还具有以下特点:
1.同时访问数据库的用户数量不受限制。
2.可保存超过50,000,000条记录。
3.是目前市场上现有产品中运行速度最快的数据库系统。
4.用户权限设置简单、有效。
5.使用C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
6.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。
7.为多种编程语言提供了API。
8.支持多线程,充分利用CPU资源。
9.优化SQL查询算法,有效地提高查询速度。
10.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
11.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
12.提供用于管理、检查、优化数据库操作的管理工具。
13.可以处理用户上千万记录的大型数据库。
14.支持多种存储引擎。
2.3JAVA与数据库连接
本文说明的系统是利用MySQL厂商提供的驱动与数据库链接的。
这种实现方法是直接使用数据库厂商提供的用专用的网络协议创建的驱动程序,通过它可直接将JDBCAPI调用转换为直接网络调用。
这种调用方式性能好、简单易用。
这种方法的通行方式如下:
应用程序------JDBCAPI------驱动程序--------数据源
JDBC是一种可用于执行SQL语句的JavaAPI,由一些Java语言写的类、界面组成。
JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。
不但如此,使用Java编写的应用程序可以在任何支持Java的平如上运行,不必在不同的平台上编写不用的应用。
Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!
”。
Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。
它所需要的是Java应用如何同各种各样的数据库连接。
JDBC正是实现这种连接的关键。
2.4JavaScript
JavaScript是一种基于对象和事件驱动的客户端脚本语言。
JavaScript最初的设计是为了检验HTML表单输入的正确性。
JavaScript起源于Netscape公司的LiveScript语言。
JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。
使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中连接多个对象,与Web客户交互作用。
从而可以开发客户端的应用程序等。
它是通过嵌入或调入到标准的HTML语言中实现的。
它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。
JavaScript最初起源于LiveScript语言,当互联网开始流行时,越来越多的网站开始使用HTML表单与用户交互,然而表单交互却成了制约网络发展的重大瓶颈(用户总是痛苦的等待数据传送到服务器端检测,并传回是否正确,仅仅的表单检测,就产生了多次客户端与服务器端交互)。
于是Netscape公司推出了LiveScript语言,最后Netscape与Sun将LiveScript命名为JavaScript(当时JAVA是很时髦的互联网名词),随后微软开始了其野心勃勃的浏览器计划,并且推出了JScript,于是网络上出现了几种类似的JavaScript语言,但是没有统一的特性与语法(当时的JavaScript开发被看做是一场噩梦,因此很多程序员并不看好JavaScript)。
最终JavaScript被提交到欧洲计算机制造商协会(ECMA),做为中立的ECMA开始了标准化脚本语言之路,并将其命名为ECMAScript。
JavaScript特点:
1、JavaScript是一种脚本语言,它采用小程序段的方式实现编程。
像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB、Delphi十分类似。
但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。
它与HTML标识结合在一起,从而方便用户的使用操作。
2、JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。
这意味着它能运用自己已经创建的对象。
因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3、JavaScript的简单性主要体现在:
首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于学习Java是一种非常好的过渡。
其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4、JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。
从而有效地防止数据的丢失。
5、JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。
它对用户的反映响应,是采用以事件驱动的方式进行的。
所谓事件驱动,就是指在主页(HomePage)中执行了某种操作所产生的动作,就称为“事件”(Event)。
比如按下鼠标、移动窗口、选择菜单等都可以视为事件。
当事件发生后,可能会引起相应的事件响应。
6、JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。
从而实现了“编写一次,走遍天下”的梦想。
实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。
无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。
2.5JSP
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
JSP技术的特点:
1、一次编写,到处运行。
除了系统之外,代码不用做任何更改。
2、系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/.net的局限性是显而易见的。
3、强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
4、多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5、支持服务器端组件。
web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。
JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。
6、与ASP一样,Java的一些优势正是它致命的问题所在。
正是由于为了跨平台的功能,为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 搜索引擎的设计 毕业设计论文正文 搜索引擎 设计 毕业设计 论文 正文
![提示](https://static.bdocx.com/images/bang_tan.gif)