




已阅读5页,还剩71页未读, 继续免费阅读
(计算机应用技术专业论文)搜索引擎ftp及其它协议资源的搜索算法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
搜索引擎职p 及其它协议资源的搜索算法研究 摘要 随着互联网的不断发展,搜索引擎已经成为检索网络上信息的重 要助手。世界各科研机构对于搜索引擎技术的研究和开发十分重视, 北京化工大学也将搜索引擎的研究纳入学校2 1 1 工程建设的子项目。 文章所研究的“搜索引擎翮限及其它协议资源的搜索算法研究”,正 是此研究项目的重要组成部分,主要的研究内容和成果如下。 对m 搜索引擎技术进行了深入的研究,了解了f t p 协议规范、 分析了其协议资源的搜索原理,在此基础上设计和实现了f s e a 斌系 统。这是一个面向校园网用户,自主研发的m 搜索引擎系统。系 统的设计和研发,综合运用了n e t 平台开发、,技术、c 撑编程语 言、数据库开发、网络应用开发等相关平台、技术和编程语言。f s e 鑫砒 搜索引擎系统提供了支持复合查询的用户界面,实现了网站快照等功 能。系统在经过了测试和试运行之后,目前已经正式发布运行,在化 工大学有了实际的应用。 对p 2 p 协议资源的搜索进行了研究,分析了4 种典型的p 2 p 系 统拓扑结构,得出了其结构的特性。在此基础之上,根据搜索引擎系 统的特点,设计了基于超级节点方式的p 2 p 搜索引擎系统,并实现了 相关搜索算法。 综合全分布式非结构化拓扑、全分布式结构化拓扑和半分布式拓 扑结构的优缺点之后,文章提出了一种p 2 p 系统的架构模型,即“复 合模型的p 2 p 系统架构 ,对其设计和实现方法做了阐述和说明,并 提出了一些改进策略。 关键词:搜索引擎,f m ,协议,资源,p 2 p ,算法 j 商螋 s e f 垤c he n g i n e e r :r e s e a r c h i n gt h er e s o u r c e s e a r c ha r n ? h m e t i ca b o u tf t p a n d o t h e r s p r o t o c o l a b s t r a c t f i j 各d a ys e 鑫r c he 珏g i 懿e e fb e 燃e st h i 毒耀o s li 搬p o 琏鑫s s i s t 我,w i 耋hl h e g r o w i n go fi n t e m e t s c i e n t i f i cr e s e a r c ho 略a n 娩a t i o na t t a c h 6 si m p o r t a n c e t ot h er e s e a r c ho ns e a r c he n g i n et e c h n o l o g y b e 巧i n gu n i v e r s i t yo f 蕊e m i 嘲r e 蠹麴l o 鳃b 豳g 凌e 羚s e a 幽潍s e 撤h & g i t e c 魏纛o l o g y i n t os u b p r o j e c to ft h e2 1 1p r o j e c t i ti st h em o s ti m p o np a r to ft h i s p f o j e c t ,w h i c ht h i sp a p e rr e s e a r c hc o n t e n t “s e a r c he n g i n e e r :r e s e a r c h i n g l 纛e 陀s 洮f c es e 鑫豫纛越氇攥e l i e 西钒l 叠p 勰do l 囊e 鹅p 羚l o e o l ”。 s t u d i e dt h e 】i i ts e a r c he n g i n et e c h n o l o g y a c q u i r e dt h ek n o w l e d g e o ff i p p r o t o c o l ,a n da n a l y z e ds e a r c ht h e o r ya b o u tf 印p r o t o c 0 1 r e s o u r c e d e s i g 鑫e 莲勰dd e v e b p e df s e a 粥魏s y s 钯黻o 鼗b 於eo f h i sw 旅。了陲i s s y s t e mi ss e l fd e v e l o p e da n df a c et h ec a m p u sp e o p l e a p p l yl o t so f t e c h n o l o g y ,s u c ha s 全疆工x m l ,c 襻,d a t a b a s e ,n e 咐o r ka n ds oo n ,i nt h e c 傩f s e 硝d e v e l o p i 羹gs y s e m t h e f s e 鑫陀董ls e a f c h 登稳g i n e e fs y s 姥瞰 p f o v i d et l s e ri n t e r f a c ew h i c hs u p p o r tc o l n p l e xs e a f c h ,a n dc o m p l e t e dh o s t s n a pf u n c t i o n n o w s y s t e mh a sc o m p l e t e dt e s t i n g ,a n du s i n gi nb e i j i n g u n i v e f s i yo fc h e 糯i e a lr e h n o l o g y 1 北京化t 人学坝i :学位论文 s t u d i e dt h ep e e rt op e e rp r o t o c 0 1 d m a l y z e df o u rt y p i c a lp e e rt op e e r s y s t e mt o p o l o g y ,a n df o u n do u tt h ec h a r a c t e r i s t i co ft h i st o p o l o g y o nt h i s b a s e ,d e s i g nap e e rt op e e rs e a r c he n g i n e e rs y s t e mw h i c hd e p e n d o ns u p e r n o d e ,f i n a l l yi m p l e m e n tt h es e a r c ha r i t h m e t i c g i v eo u tap e e rt op e e rs y s t e ms t m c t u r e ,ac o m p l e xp e e rt op e e r s y s t e ms t m c t u r e ;b ys y n t h e s i z e d e c e n t r a l i z e du n s t m c t u r e d7 r o p o l o g y d e c e n t r a l i z e ds t m c t u r e dt b p o l o g ya n dp a r t i a u yd e c e n t r a l 娩e d7 i o p o l o g y f i n a l l ye x p l a i nt h em e t h o do fd e s i g na n dr e a l i z et h i ss y s t e ms t m c t l l r e , a n dg i v es o m ei m p r o v ea d v i c e k e yw o i m s :s e a r c he n g i n e e r ,f t p ,p r o t o c o l ,r e s o u r c e ,p 2 ea r i t h m e t i c 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 作者签名:日期: 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论 文的规定,即:研究生在校攻读学位期间论文工作的知识产权单 位属北京化工大学。学校有权保留并向国家有关部门或机构送交 论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公 布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在一年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名: 导师签名: 第一一辛绪论 1 1 背景介绍n 。 第一章绪论 自从1 9 9 3 年第一批搜索引擎诞生至今,已有3 0 0 0 多种搜索引擎问世,其中 著名的有:e x c i t e 、y a h 0 0 、t a s t a 、i n k t o m i 、g 0 0 西e 、百度、天网等。随着 搜索引擎技术的不断研究和发展,搜索引擎系统从最初的主题指南型发展到独 立型搜索引擎、混合式搜索引擎、元搜索引擎乃至分布式搜索引擎。搜索引擎技 术已经成为一个新的研究、开发领域。它涉及到了自然语言理解、p 2 p 对等网络、 多媒体多格式信息检索、分布式处理、交叉语言检索、) ( m l 可扩展标记语言、 搜索向导等多个领域的理论和技术,具有相当的综合性和挑战性。搜索引擎在互 联网上拥有大量的用户、具有非常好的经济价值,这引起了世界各国计算机科学 界和信息产业界的高度关注。目前各科研机构关于搜索引擎技术的研究和开发十 分活跃,取得了一些有意义的研究成果,出现了很多值得注意的动向。 北京化工大学已将搜索引擎的研究纳入学校2 1 1 工程建设的子项目,并由校 信息科学与技术学院的网络数据库研究室负责研究和开发。自2 0 0 0 年来研究室 对搜索引擎技术的研发在不断的进行和完善当中,并取得了初步的研发成果。目 前已初步实现了“化工专业搜索引擎”,这是一种专题型的h t l l p 资源的搜索引 擎。实现了对化工专业相关网站信息的搜索,并建立了化工专业信息数据库以供 查询。 为了研究和了解更多协议资源的搜索算法,进一步扩展和完善化工专业搜索 引擎系统的功能,将f 1 田和其它协议资源的搜索算法也纳入到该系统的研究和 开发范围中。本文所研究的“搜索引擎f 1 t 及其它协议资源的搜索算法研究一, 正是此项目研究的重要组成部分。下面简要概述一下搜索引擎技术,对搜索引擎 技术的发展历程、技术特点有一个整体的了解。 1 2 搜索引擎技术删 1 2 1 定义 搜索引擎( s e a r c he n 西n e e r ) 是指根据一定的策略、运用特定的计算机程序 搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。 搜索引擎技术是一种非常先进的信息查询技术,它采用了快速索引技术、动 态缓存技术、分布计算技术、内容评价技术等多种技术手段,能够不断地适应快 速增长的用户需求,现在已成为仅次于电子邮件的第二大网络应用。 北京化:人学f i ! ;! i j 学位论义 1 2 2 发展历程 , 搜索引擎的历史可以追溯到1 9 9 0 年,这一年加拿大蒙特利尔大学艾伦伊 米杰等三个学生开发出了心c h i e 程序。删l i e 是第一个自动索引互连网上匿名 n 曙网站文件的程序,它维护了一个可搜索的f r p 文件名列表,用户必须输入 精确的文件名来搜索。c h i e 虽然还不能算是真正的搜索引擎,但是它和现代的 搜索引擎的基本的工作方式是基本一样的:自动搜索资源、建立资源索引、提供 索引服务。所以觚h i e 被公认为是现代搜索引擎的鼻祖。 1 9 9 3 年世界上第一个s p i d e r 程序w b r l dw i d ew 曲w a n d e r c r 被开发出来。 s p i d e r 程序就是专门用来搜索资源的机器人( r o b o t ) 程序,由于它的工作方式 就好像蜘蛛( s p i d e r ) 一样在网络问爬来爬去,因此被称为s p i d e r 程序。s p i d e r 程序之后被不断完善,从一开始的用来统计互连网上的服务器数量,发展到后来 的能够捕网址( u r l ) 和分析网页。s p i d e r 已经成为搜索引擎系统的核心模块。 1 9 9 4 年到1 9 9 8 年期间搜索引擎迅速发展,先后有呦0 0 、w 曲c r a w l e r 、i 鹏o s 、 i n f o s e e k 、t a s t a 、i l l k t o m i 、n o n h e m l i g h t 、g o o 百e 等著名搜索引擎系统问世。 搜索引擎技术得到了极大的发展,搜索引擎从最初的主题指南型发展到独立型搜 索引擎、混合式搜索引擎、元搜索引擎乃至分布式搜索引擎。搜索引擎技术正在 不断趋于成熟,并且已经成为了一个重要的研究、开发领域。 1 2 3 工作原理 搜索引擎系统一般由资源搜索器、索引生成器、信息检索器和用户界面四个 部分组成。资源搜索器也就是前文所提到的s p i d e r ,其功能是在互联网中搜索相 关协议的资源信息,并将信息保存到本地交由索引生成器来处理。索引生成器分 析和理解s p i d e r 所搜索到的信息,从中抽取出索引项、生成索引表并保存到本地 信息库中。信息检索器是为用户提供查询服务的,它根据用户的查询信息在本地 信息库中快速检索信息,进行相关度评价并将输出的结果排序后返回给用户。用 户界面提供给用户查询操作界面平台,其作用包括接纳用户查询、显示查询结果、 提供个性化查询选项等。 1 2 4 发展展望 随着互联网的不断发展网络上的信息量越来越庞大,检索这些信息就越来越 需要依靠搜索引擎的帮助。同时人们对搜索引擎功能的要求也越来越高,不同的 人群有不同的搜索需求。搜索引擎技术正成为计算机工业界和学术界争相研究和 开发的对象,未来的搜索引擎技术呈现四大发展趋势:多元化、智能化、专业化 和多媒体化。 2 笫一亭绪论 1 3 研究内容和成果 尽管现在互联网上大部分的信息是存贮在各大网站上,通过h t t p 的方式来 更新和访问;但是在教育网中,还是有大量的信息是存贮在f r p 站点上的,学 生们对f p t 协议资源检索的需求还是很大的。基于这点出发,研究室提出了课 题“搜索引擎f t p 及其它协议资源的搜索算法研究”。 本课题主要研究内容是兀p 协议资源的搜索算法,经过系统的研究给出了相 关的搜索算法、理论原理和实现架构,并在此基础之上开发和搭建了本校自己的 f 1 p 搜索引擎系统。在实现了这个目标后,又针对现在流行的p 2 p 协议资源的搜 索算法进行了研究、提出了改进策略、设计和开发了基于p 2 p 协议资源的搜索算 法。 , 3 讹乖几p 搜索,j i 擎系统的训究o ,实j 见 第二章f r p 搜索引擎系统的研究与实现 2 1 引言川 兀甲( f i l e1 r a n s f e rp r o t 0 c 0 1 ) 文件传输协议,是用于文件传输的i n t e m e t 标准。 由f m 提供的文件传输是将一个文件完整的从一个系统复制到另一个系统中。 f 限最早的设计是用于两台不同的主机,这两个主机可能运行在不同的操作系统 下、使用不同的文件结构、并可能使用不同的字符集。f r p 的正式规范于1 9 8 5 年发布。f 1 曙站点就是实现了f 1 限协议的文件传输服务器。通过f 1 m 客户端软 件可以登录到f 曙站点,来浏览目录和下载文件。f r p 在i i l t e m e t 上的应用非常 广泛,主要是用来共享和交流文件资源。 兀t 搜索引擎的出现是为了方便查找f 1 田资源,它能定期搜集和分析f 1 r p 站点上的文件信息,并提供查询资源的服务,是一个复杂的系统。聊曙搜索引擎 系统的开发涉及到了f t p 协议标准、网络编程、数据库技术、w e b 界面开发、 x m l 数据转换等多个相关领域的知识和技术。 本章介绍了f t p 协议的相关知识,举例说明了基于f 1 m 协议资源的搜索原 理。在此基础上设计和开发了兀p 搜索引擎系统( 以下简称为“f s e a r c h 系统”) , 介绍了使用到的相关技术,并给出了一些关键模块的实现代码。 2 2f t p 协议规范 f r p 协议定义了一些标准和规范,包括传输模型、命令和应答等。开发f 1 t 应用( 服务器客户端) 都必须遵循这些规范,了解兀甲协议是开发f s e a r c h 系 的首要任务。 2 2 1 协议介绍 f 曙协议与一般的i n t e m e t 协议不同。通常的h l t e m e t 协议是采用一个t c p 连接来传送信息的,例如h 1 曙协议;而f 旧协议是采用两个t c p 连接来实现 文件的传输的,如图2 1 所示。 5 北京化t | 人学坝i j 学位论文 文件 系统 用户接口 用户协议 l 竺型兰堡 i 服务器协议 解析器 l ( f r p 命令) l 解析器 广一( f 1 m 应答) 。下一 用户数据传 输功能l数据连接 服务器数据 传输功能 图2 1f 1 p 传输模型 f i g 2 lf 1 限t r 卸s f e rm o d e l 文件 系统 从图中可以看到这两个t c p 连接,一个是用来发送接收f 曙命令消息的, 叫做控制连接。另一个是用来进行文件数据传输的,叫做数据连接。 控制连接以通常的客户朋艮务器方式建立。服务器监听f t p 服务端口( 通常 为2 1 端口) ,等待客户端的连接。客户端通过t c p 连接到服务器,来建立控制 连接。控制连接始终等待客户端与服务器之间的通信,将命令从客户端传给服务 器,并传回服务器的应答。 当文件需要在客户端与服务器之间传输时,就创建一个数据连接。数据连接 在文件传输完毕后,由服务器主动关闭。数据连接有三个用途:1 ) 从客户端向 服务器发送一个文件。2 ) 从服务器向客户端发送一个文件。3 ) 从服务器向客户 端发送文件或目录列表。 客户端和服务器都有一个负责解析f 1 曙命令的协议解析器。用户协议解析器 将用户的操作行为转化为符合f 1 m 协议的一系列命令,并通过控制连接传送到 服务器。服务器协议解析器分析控制连接传来的f t p 命令,并将处理后的响应 信息通过控制连接传回给客户端。 数据传输功能负责屏蔽客户端和服务器文件系统的差异( 客户端和服务器可 能是不同的操作系统) 。从数据连接收到的数据,由数据传输功能按照本地文件 系统的规则存储成本地文件。本地文件系统的文件数据,则由数据传输功能解析 后通过数据连接传输到其它机器上。 2 2 2f t p 命令 f t p 命令在网络上是通过仃a s c i i 码形式传递的,每个命令行的结尾都要 返回c r 、l f 对。这些命令都是3 或4 个字节的大写a s c i l 字符,其中一些带选 项参数。从客户端向服务器发送的f r p 命令超过3 0 种,表2 1 列出了一些常用 6 第一章f t p 搜索,j l 擎系统的州乡c j 实j 见 a b o r u s tf i l e l i s t p a s sp a s s v 旧r d p o r t n 1 ,n 2 ,n 3 ,n 4 ,n 5 ,n 6 q u i t r e i rf i l e n a m s t o rf i l e n 锄e s y s t t y p e t y p e u s e ru m 锄e 放弃先前的f 1 t 命令和数据传输 、列表显示文件或目录 服务器上的口令 客户端i p 地址( n 1 n 2 n 3 n 4 ) 和端口( n 5 2 5 “n 6 ) 从服务器注销 检索( 取) 一个文件 存储( 放) 一个文件 服务器返回系统类型 说明文件类型:a 表示a s c l i 码、l 表示图像 服务器上用户名 2 2 3f t p 应答 网限应答的前三位是a s c 码形式的数字代码,后面的是报文信息。前面的 数字代码是交给软件系统处理的,后面的报文信息是面对人工处理的。通过报文 信息用户就可以知道应答的含义,而不用去记忆所有的数字代码。通常每个f 1 叩 命令都产生一行回答,例如,q u i t 命令可以产生如下应答:“2 2 1g 0 0 d b y e 一。 应答的3 位数字代码中的每一位数字都有不同的含义,表2 2 中给出了数字 代码中第1 位和第2 位的含义。 表2 - 2 数字代码含义 t a b i e 2 2n e 腓a n i n g so ft h en u m b e rc o d c 应答说明 1 ) r z 2 y z 3 y z 4 y z 5 ) r z x o z x l z x 2 z x 3 z x 4 z x 5 z 肯定预备应答。它仅仅是在发送另一个命令前期待另一个应答时启动 肯定完成应答。一个新命令可以发送 肯定中介应答。该命令已经被接受,但另一个命令必须被发送 暂态否定完成应答。请求的动作没有发生,但差错状态是 暂时的,所以命令可以过后再发 永久否定完成应答。命令不被接受,并且不再重试 语法错误 信息 连接。应答指控制或数据连接 鉴别和记账。应答用于注册或记账命令 未指明 文件系统状态 第3 位数字给出差错报文的附加含义。以下给出了一些典型的应答,都带有 一个可能的报文串。 1 2 5 数据连接已经打开;传输开始 2 0 0 就绪命令 7 北京化i 人:f 映i “他论文 2 1 4 帮助报文( 面向用户) 3 3 1 用户名就绪,要求输入口令 4 2 5 不能打开数据连接 4 5 2 错写文件 5 0 0 语法错误( 未认可的命令) 5 0 1 语法错误( 无效参数) 5 0 2 未实现的m o d e ( 方式命令) 类型 2 3f t p 协议资源搜索原理 通过上一节的介绍,对f t p 的传输模式、命令及响应有了一定的了解。那么 f t p 搜索引擎是如何搜索并获取这些f t p 站点的目录信息的呢? 是基于什么样 的原理和机制呢? 在这一节,将通过实际的案例对搜索原理进行分析和模拟。 2 3 1 搭建实验环境 运行案例之前,需要搭建一个实验环境,步骤如下: 1 准备两台联网的机器,一台作为文件共享的f 1 p 站点,另一台作为访问 服务器的客户机( 案例中服务器i p 地址为2 0 2 4 1 3 0 1 5 9 ,客户机的i p 地址为2 0 2 4 1 3 0 1 3 3 ) 2 在服务器上安装兀 p 服务软件。服务软件可以选择比较流行的s e r v u , 也可以选用w i n d o w s 系统的i i s 。 3 服务软件安装完毕后,在客户机利用操作系统自带的兀t 程序来进行测 试。测试过程如图2 2 所示:a ) 打开命令提示符,输入“邱2 0 2 4 1 3 0 1 5 9 命令连接到f r p 服务b ) 输入用户名、密码登录c ) 登录后输入“d i r ” 命令,就可以看到根目录下的所有目录和文件信息。这样丌p 站点就搭 建完成了。 图2 - 2f r p 示例 i l f i g 2 2f t pe x a m p l e 8 2 3 2 模拟搜索 实验环境搭建完成后,就可以开始模拟从客户端登录到服务器,并搜索其目 录信息的过程。根据f 旧协议规范,客户端需要与服务器建立两个t c p 连接: 控制连接和数据连接。 控制连接是客户端主动建立的,可以利用利用w i n d o w s 操作系统自带的 t e l n e t 命令来建立控制连接。例如,兀1 p 服务默认端口是2 1 端口,则在命令提 示符下键入“t e l n e t2 0 2 4 1 3 0 1 5 92 1 ”命令,就连接到了兀甲站点,并建立了控 制连接。 数据连接是由服务器主动与客户端建立的,在客户端由“f t p c l i e n t l i s t e n ”程 序来监听服务器的连接请求,并建立数据连接。f t p c l i e n t l i s t e n 是一个能够监听 特定端口的t c p 程序,它能够接受传入的t c p 连接,并将从连接上接收到的数 据显示在屏幕上。这个程序由c 捂言开发,用到了n e t 类库中的t 印l i s t e n e r 类, 基于n e t 平台的网络丌发在后面会有详细的介绍,程序清单可以参见“附录1 f t p c l i e n t u s t e n 程序清单”。 图2 3 显示了通过控制连接发送u s e r 和p a s s 命令登录到f 1 甲站点,并通 过p o r t 和u s t 命令获取目录列表的操作过程。 黢霉蘩鬻i o - :i 。i 鬻黍鬻 一口 图2 3 控制连接示例 f i g 2 - 3e x a m p l eo fc o n t r o lc o n n e c t i o n 在这个过程中,共用到了4 个f r p 命令: u s e r 命令:向服务器发送登录所需的用户名,格式为“u s e ru s e m a m e ” u s e m a m e 参数表示用户名。 p a s s 命令:当u s e r 命令成功后( 响应代码为3 3 1 ) 向服务器发送登录 所需的用户密码,格式为“p a s sp a s s w o r d ”p a s s w o r d 参数表示用户密码。 op 0 l 玎命令:向服务器发送与客户端建立数据连接的地址和端口号,格 式为“p o r tn 1 ,n 2 ,n 3 ,n 4 ,n 5 ,n 6 ”参数以逗号分割,客户段i p 地址为 “n 1 n 2 n 3 n 4 ”端口号为“n 5 2 5 6 + n 6 ”。 0l l s t 命令:向服务器发送获取当前目录列表的请求。服务器在接收到 9 ,f l 矗化i i “啦i j # f t 沦殳 l i s t 命令后,根据p o i 玎命令所传递的信息与客户端建立数据连接并在 控制连接上返回响应( 1 5 0 数据连接建立) 。连接建立后传送目录信息到 客户端,传送完毕后服务器关闭数据连接并返回响应到控制连接( 2 2 6 传输完成) 。 图2 4 显示的是f t p c l i e n t l i s t e n 程序接收到的服务器传送来的目录信息。将 这个目录信息与图2 2 中的信息进行比对,可以发现两者是一样的。 图2 - 4 数据连接示例 f i g 2 - 4e x a m p l eo fd a t ac 0 加e c t i o n 发送c w d 命令可以改变当前目录,格式为“c w dp a t h ”p a t h 参数表示需要 改变到的目录。例如,如果需要更改到目录1 则输入“c w d 目录1 。更改目录 后可以通过p o r t 和u s t 命令来获取新的目录列表信息。 需要注意的是,p o r t 命令和u s t 命令是成对出现的,即在每个u s t 命令 前都需要发送p o r t 命令来选择一个新的数据连接端口。这是因为服务器传送完 数据后会主动断开数据连接,之前使用过的端口就有可能正处于2 m s l 等待状态 而不能够被再次使用。( 2 m s l 状态的说明可以参考t c p 协议,这里不再详述) 2 3 3 分析信息 上一节中从兀p 站点得到了目录信息。现在就来分析一下其目录信息的格 式。图2 4 中显示的就是已经获取的目录信息,可以看到每一行描述了一个目录 或文件的内容。按照c r ( 回车符) 和l f ( 换行符) 位置,可以将一个文件或目 录的内容描述拆分出来,例如: d 刑- n v 一州1u s e r 伊o u p 0m a r2 92 2 :2 6 目录1 n n 州1u s e r 伊o u p 9 6 9m a r2 92 2 :2 6 文本文档1 t x t 分别是目录和文件的内容描述,由7 个部分组成。以“文本文档1 t x t ”的内 容描述为例,说明如下: 1 n 州n v 【标识文件或目录,第一个字符为“d ”则为目录】 2 1 3 u s e r 4 伊o u p 5 9 6 9 表示文件或目录的大小1 1 0 第一卡f r r p m 索,j l 擎系统的川究j 实现 6 m a r2 92 2 :2 6 【表示文件或目录的时间】 7 文本文档1 t x t 【文件或目录名】 根据1 、5 、6 和7 部分的内容,就可以确定类型、大小、时间和名称。这正 是建立索引信息的依据。 2 3 4 小结 通过实际案例的模拟,对f 1 r p 协议资源的搜索方式有了比较深入的了解。资 源的搜索是建立f 1 限搜索引擎的必要条件,得到了资源信息后就可以根据这些 信息来生成索引数据。之后,就可以定制查询服务并提供查询界面。 2 4f s e a r c h 系统 基于以上对网瞪协议规范研究和f 】田协议资源搜索方式的分析与模拟,本 课题设计并研发出了f s e a r c h 系统。f s e 蹦h 系统是课题研究的重要成果,是一 个自主开发且功能完善的f 1 曙搜索引擎系统。系统在开发过程中综合应用了数 据库开发、网络编程、x m l 技术、n l t 平台开发等多个相关技术领域的知识和 编程技术。这一节介绍f e a r c h 系统的整体架构、核心模块功能和开发应用平台, 接下来的几节将针对核心模块和关键技术点展开详细的说明和论述。 2 4 1 整体架构 f s e a r c h 系统的整体架构如图2 - 5 所示: ; 图2 5 系统架构 f g 2 - 5s y s t e ms t m c t u r e 系统在架构的设计上沿用了搜索引擎系统的典型架构模式,既由资源搜索 器、索引生成器、信息检索器和用户界面四大功能模块构成。如图所示,f s e a r c h 北京化t 人学f 嗍i j 学位论文 系统包含了4 大核心模块,其中s p i d e r 模块完成了资源搜索器的功能,数据处理 模块完成了索引生成器的功能,查询服务模块完成了信息检索器的功能。用户界 面基于a s p m 玎技术开发,以、e b 服务的方式提供给用户,用户可通过浏览 器方便快捷的访问。 2 4 2 核心模块功能 f s e a r c l l 系统包含4 大核心模块:s p i d e r 模块、数据处理模块、查询服务模 块和用户界面模块。每个模块负责不同的工作,模块之间通过相互的接口调用、 x m l 数据共享等方式协同工作,从而保证了系统的正常运行。各核心模块的功 能如下所示: os p i d e r 模块:负责搜索各个f 1 曙站点的目录信息,并将搜索的结果按照 系统规定的格式保存为x m l 数据文件。由s p i d e r 模块搜索得到的各f 1 m 站点的文件信息,是建立f s e a r c h 系统索引数据的基础。 0 数据处理模块:s p i d e r 模块完成的包含各f 1 甲站点信息的x m l 数据文 件,由数据处理模块来负责解析和生成索引数据,并将数据保存到数据 库对应的索引表中。数据处理模块的工作完成之后,f s e a r c h 系统的索引 数据就建立完成了。 o 查询服务模块:负责向用户界面提供查询操作接口,它对用户界面提交 的查询请求进行解析,并按照逻辑规则生成数据库能够识别的 t r 她s a c t s q l 语句。查询服务模块将这些生成的t f a n s a c t s q l 语句提交 给数据库执行并得到查询结果,之后将结果集按照约定的格式返回给用 户界面处理。 o 用户界面模块:用户界面是f s e a r c h 系统的窗口,它直接面向用户,为 用户提供资源查询的操作界面。在用户通过操作界面提交了查询请求后, 用户界面调用查询服务提供的接口来执行查询,查询服务返回的结果集 由用户界面按照特定的格式来展现给用户。 s p i d e r 模块和数据处理模块完成了资源搜索、索引生成功能,是系统的后台 模块。这两个模块通过x m l 数据文件来交换和处理m 站点的信息数据,关于 x m l 数据文件的格式及其他说明在2 6 节有详细的介绍。查询服务模块和用户 界面模块,共同完成了系统的查询功能,它们是为使用系统的用户提供服务的, 是系统的前台模块。 2 4 3 开发应用平台 f s e a r c h 系统的开发应用平台如下: 系统软件运行的操作系统:w i n d o w s2 0 0 3s e r v e r 1 2 第:争f 1 p 搜索引擎系统的训究7j 实见 数据库:s q ls e e r2 0 0 0 开发平台:微软m 玎平台 w e b 服务器:微软i i s 6 0 开发语言:c 带编程语言 网络环境:北京化工大学校园网 2 5 数据库设计和访问组件 数据库是f s e a r c h 系统的核心,是系统运行的基础。系统的索引数据是按照 既定的模型存储在数据库中的,数据库提供了存储、维护、检索数据的功能,用 户的查询请求可以从数据库中方便、及时、准确的获得。在详细介绍各核心模块 之前,这一节先对数据库的设计及访问组件进行说明。 2 5 1 数据库设计 在f s e a r c h 系统的数据库中定义了两张数据表h o s t i n f o ( 站点信息表) 和 i n d e x h l f 0 ( 索引信息表) ,表结构如表2 3 和2 4 所示。站点信息表存放的是已搜 索和未搜索的f r p 站点信息,索引信息表存放的是各f 1 旧站点上的索引信息。 表2 - 3h n f 0 表结构 i a b l e 2 - 31 1 坞s t m c t i l 他o ft h eh o s t i n f bd a t at a b l e 列名数据类型长度说明 职:m o t e h o s t r e 瑚d t e p o n u s e r 锄e p 雏s w o r d f o l d e r n u m b e r f i l e n u m b e r l a s t u p d a t e d a t e s t a i e c v c l e 列名 f 1 巾站点的i p 地址或域名 同曙站点的服务端口 用户名 用户口令 站点上的目录数 站点上的文件数 最后一次更新时间 站点状态,o 表示需要更新、1 表示已更新 更新周期,单位为天数, 表2 4 i n d e x l n f 0 表结构 t a b l e 2 4t h es 仃u c t u 他0 ft h ei n d e x i i 由d a t at a b l e 数据类型长度说明 r e m o t e h o s t r e m o t e n 锄e r e n l o t e p a t h 聆m o t e l 3 ,p e r e m o t e s i z e r e m o t e d a t e 5 0 2 0 0 5 0 0 1 0 8 8 1 3 同r p 站点的i p 地址或域名 文件或目录名 访问路径 类型,d 为目录、f 为文件 文件大小 服务上的文件或目录的时间 卯4 姗m 4 4 8 2 2 r r r 幢n n 陆。胁胁。m胁亘 陀m蚓删mm趾m m;目=证洫姒| 盯酊缸:m h h h 眦别h 忙 删 k h 烈批詈批嘶触 v v v 缸 l 京化l 。j 、二似! i 学位论文 s p i d e r 模块从h o s t i n f o 表中获取要搜索的f 1 、p 站点列表,s t a t e 为o 表示要搜 索的站点数据,s p i d e r 模块在搜索完成后会将对应数据的s t a t e 字段设置为1 。对 于已经搜索过的站点,在经过了一定的周期后需要对其重新搜索,以更新索引数 据。h o s t i n f o 表中的l a s t u p d a t e d a t e 字段记录了最后一次更新时间,c y c l e 字段规 定了更新周期( 天数) 。将最后一次更新时间、当前系统时间和更新周期进行比 较就可以知道该条数据对应的f r p 站点的文件索引信息是否需要更新,如果需 要更新就将s t a t e 字段设置为0 。 s q l s e e r 2 0 0 0 提供了强大的代理功能既s q l s e e ra g e n t ,它是一个任务规 划器和警报管理器,可以将周期性的活动定义成一个任务,让其在a g e n t 帮助下 自动运行,而不用进行人工干预。f s e a r c h 系统利用代理功能来实现上述更新过 程,这样就不用编写专门的程序来实现此功能,且充分利用了数据库的强大处理 能力,既避免了额外的编程和维护工作,又减少了运行时c p u 和内存的花销。 具体的实现步骤如下所示: 图2 6 设置代理 f i g 2 6s e ta g e n t 首先,启动s q l s e e r 企业管理器,并选择管理功能中的作业选项。其次, 单击右键并选择新建作业,会弹出新建作业的属性窗口,如图2 6 所示。之后对 常规、步骤和调度三个选项卡中的内容分别进行填写。填写内容如下: o 常规选项卡中,填写名称栏为“u p d a t e h o s t b y c y c l e ”,描述栏中填写“根 据搜索周期更新f r p 站点s t a t e 属性”。 o 步骤选项卡中,点击“新建”按钮并填写步骤名为“u p d a t e ”,选择数据 库为f s e a r c h 系统的数据库,填写命令“u p d a t eh o s t i n f os e ts t a l e = 0w h e r e d a t e d i f f ( d a y ,l a s t u p d a t e d a t e ,g e t d a t e o ) c y c l e ”。 调度选项卡中,点击“新建调度按乍f 【,填写名称为“u p d a t e c a s e ”,选择 1 4 如一蒂f t p 搜索,j i 擎系统的删究1 j 实j 见 调度类型为“反复出现 后点击靠更改按镫,将发生频率更改为每天, 其他按默认值即可。 填写完毕后点击确定按镪,就完成了设置,数据麾会在每天的零点窦动执行 指定的命令。命令中用到了数据库函数d a t e d 濉,它返回跨两个指定日期的日期 和时间边界数。语法为:d 峨d i f f ( 鼬e p 稚,s l 硪d 越e ,e n d d a 蟛) 第一个参数规 定了应在日期的哪一部分计算差额,第二个参数表示计算的开始日期,第三个参 数是计算的终止日期。 2 5 2 数据库访问组件 f s e 粼h 系统中数据处理模块和查询服务模块对数据库的访闻是相当频繁 的,而每一次对数据库的访问都需要进行建立数据库连接、提交查询、获取结果、 关闭连接等操作。为了规范数据库操作代码和简化其他模块对数据库的操作, f s c a r c h 系统抽取了数据库访问操作的共性,对其进行了代码封装,生成了数据 库访问组件,并发布了组件调用接口。 数据库访闻缰件的调焉接叠定义如下: : 执行一组s q l 语句,支持事务 抛t 酊a b l eg e t d a t 耵a b l e s t r i n gs q l ) :执行条s q l 查询,并返西抛t a t a b l e 对象 d a t a s e tg e t d a t a s e t ( s t r i n g s q l ) : 执行一组s q l 查询,并返回d a t a s e t 对象 组件提供了4 个调用接口:1 ) 融e c s q l ,用来执行一条t r 锄s 拟一s q l 语句, 主要用来完成不需要返回结果的数据库操作。2 ) e x e c s q l s 用来执行多条 髓跹s a c l s q l 语旬,在需要一次提交多个相关操作时调用此接蠲。支持事务,将 操作放在事务中来执行,当其中一个操作失败时回滚之前的操作并抛出异常,这 样就保证了数据的完整性。3 ) & l 执a 珏b l o 雳来获敬数据,将结果集存放在 d a t a 胁b l e 内存表对象中。4 ) g e t d a t a s e t 用来获取多个数据表,每个数据表以 蕊l a t a b l e 的形式存放在d 如s e t 数据集中。 数据库访问组件是基于m 玎平台的数据库开发功能来实现的,主要用到的 是“s y s t e 黼d a l a 命名空间和“s y s t e m d a i a 。s q l c l i e 妣 命名空问中的类。 s y s l e m d a t a 命名空间提供对a d o m 强结构的类的访问。通过a d o 醐汀可以 生成一些组件,用于有效管理多个数据源的数据。a d o n 】巳t 结构的中心构件是 d 采a s c l 类,其表示酶是数据在内存中的缓存,在断开连接的情况下依然可以访 问内存数据。每个d a t a s e t 类都可以包含多个d a t a t a b l e 对象,每个d a t a t a b l e 都 1 5 北京化一i i 人学顺l :学位论文 表示内存中的一个数据表。s y s t e m d a t a s q l c l i e n t 命名空间是s q l s e r y e r 的n e t f r a m e w o r k 数据提供程序。s q l s e e r 的n e tf m m e w o r k 数据提供程序描述了 一个类集合,这个类集合用于访问托管空间中的s q l s e n r e r 数据库。使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论