




已阅读5页,还剩71页未读, 继续免费阅读
(计算机软件与理论专业论文)ebm网络搜索引擎的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 随着i n t e r n e t 的迅速发展,网络信息不断膨胀,给搜索引擎带来了前所 未有的挑战。人们对搜索引擎的关注程度越来越高,因此搜索引擎的发展水 平在一定的程度上决定了互联网资源的利用率,全文搜索引擎是搜索引擎的 重要分支,也是学者研究的重点。为了实现全文搜索,本文主要工作包括以 下四个方面: 第一,研究了搜索引擎的基本原理、组成、网络机器人技术以及开放源代码 的全文搜索引擎工具包l u c e n e ,提出一种改进l u c e n e 排序算法的思想。 第二,设计实现了一个可以多线程高效运行的网络机器人( l o i n c n s p i d e r ) ,网 络机器人是搜索引擎的数据来源,是搜索引擎中很重要的一部分,其性能直接影 响到数据采集的数量与质量。实验证明,该系统具有较强的通用性和稳定性,对 网站有效数据的下载成功率最高可达8 8 9 ,可以用它抓取网站数据,作为e b m 网络搜索引擎的数据来源补充。 第三,设计实现了一个全文搜索引擎系统( l o i n c n ) 。该系统包括搜索器、索引 器、检索器、用户接口四个搜索引擎的主要组成部分,实验证明,本系统基本满 足设计目标为用户提供e b m 数据的查询功能,并且实现自动文章摘要功能, 方便用户的查阅。 第四,本文以国家自然科学基金项目循证医学信息化的智能技术研究 为背景,展开研究和开发工作,将本文开发的全文搜索引擎系统应用于该项 目的站内搜索模块,实验数据证明,该搜索引擎查全率可达到8 9 6 8 。 关键词:全文检索;l u c e n e :循证医学 英文摘要 d e s i g na n di m p l e m e n t a t i o no fe b m w e bs e a r c he n g i n e a b s t r a c t t h er a p i dg r o w t ho ft h ew o r l d w i d ew e bp o s e su n p r e c e d e n t e ds c a l i n g c h a l l e n g e sf o rg e n e r a l - p u r p o s ec r a w l e r sa n ds e a r c he n g i n e s p e o p l ep a ym o r e a t t e n t i o nt os e a r c he n g i n e s ot h eu t i l i z a t i o nr a t i oo fi n t e r n e tr e s o u r c e sd e p e n d s o nt h ed e v e l o p m e n tl e v e lo fs e a r c he n g i n et os o m ee x t e n t f u l l t e x tr e t r i e v a li s a ni m p o r t a n tb r a n c ho fs e a r c he n g i n et h a th a sa t t r a c t e de x p e r t s a t t e n t i o n t o a c h i e v et h i sg o a l ,t h ec o n t r i b u t i o n si n c l u d e : f i r s t l y ,t h i sp a p e rs t u d i e st h eb a s i cp r i n c i p l e ,c o m p o s i t i o no f s e a r c he n g i n e , r o b o tt e c h n o l o g ya n do p e ns o u r c et o o l k i to ff u l l - t e x ts e a r c he n g i n ec a l l e dl u c e n e t h i sp a p e ra l s op o i n t e do u ts o m ef l a w so fl u c e n e ss o r t i n ga l g o r i t h ma n dg a v es o m e i m p r o v e m e n t s s e c o n d l y ,t h i sp a p e rd e s i g n e d a n di m p l e m e n t e dam u l t i - t h r e a dr o b o t n a m e dl o i n c n s p i d e r r o b o ti st h ed a t ar e s o u r c e so fs e a r c he n g i n ew h o s e p e r f o r m a n c ec a na f f e c t t h eq u a n t i t ya n dq u a l i t yo fd a t ac o l l e c t i o nd i r e c t l y e x p e r i m e n ts h o w e dt h a tt h i ss y s t e mh a sg o o dg e n e r a l i t ya n ds t a b i l i t y a n di t s s u c c e s sr a t eo fl o a d i n gv a l u a b l ei n f o r m a t i o nf r o mw e b s i t ec a nr e a c h8 8 9 t h e r e f o r ei tc a nb eu s e da sd a t af i l l i n gt op r o v i d ei n f o r m a t i o nf o rt h ee b m s e a r c he n g i n e t h i r d l y ,t h i sp a p e rd e s i g n e daf u l l t e x tr e t r i e v a ls e a r c he n g i n e ( l o i n c n ) i t i n c l u d e sf o u rc o m p o n e n t s :s p i d e r ,i n d e x e r ,s e a r c h e ra n du i e x p e r i m e n ts h o w e d t h a tt h i ss e a r c he n g i n em e e t st h eg o a lp r o v i d i n gu s e r se b md a t aq u e r yf u n c t i o n s a n da u t o m a t i ca r t i c l es u m m a r i e s ,e t c f i n a l l y ,t h er e s e a r c h a n d d e v e l o p m e n t w o r k w e r e d o n eu n d e rt h e b a c k g r o u n do ft h en s f cp r o j e c t i n t e l l i g e n tt e c h n o l o g y u s e di ne v i d e n c e - b a s e d m e d i c i n ei n f o r m a t i o n t h es y s t e md e s i g n e di nt h i sp a p e ri su s e di nt h ef u l l - t e x t r e t r i e v a ls e a r c hm o d u l eo ft h i sp r o je c t ,e x p e r i m e n td a t as h o w e dt h a tt h i ss e a r c h e n g i n e sr e c a l lr a t i oc a nr e a c h8 9 6 8 k e yw o r d s :f u l l - t e x tr e t r i e v a l ;l u c e n e ;e b m 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文“曼旦丛圆终理塞蔓! 鏊丝婴究皇塞理:。除论文中已经注明引 用的内容外,对论文的研究做出重要贡献的个人和集体,均己在文中以明确方式 标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公 开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:爿切域纠年口3 月叫日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法 ,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密函( 请在以上方框内打“,) 论文作者签名剥枷翩龆脚 日期:翮c 终夕月 e i n 网络搜索引擎的研究与实现 1 1 研究背景 第1 章绪论 1 1 1 理论背景 信息时代产生了大量数字信息,为了能在浩如烟海的文本信息中找到自己所 需,人们迫切需要一个高效的检索工具。如何高效地存储和查询文本这种非结构 数据,是一个很值得研究的课题。这其中以全文检索技术和全文数据库技术成为 国内外学者研究的热点。在信息检索领域,全文检索一直是一个比较复杂的问题。 与普通数据库检索所设计的结构化数据查询不同,全文检索不仅要查询结构化数 据,而且还要查询非结构化数据。当今,以全文检索为核心技术的搜索引擎已成 为网络时代的主流技术之一f l , 2 1 。 目前大多数用户对搜索引擎的检索结果并不满意【3 1 ,检索结果往往是信息的简 单罗列或包括大量的与用户期望不符的页面,用户难以准确地找到所需要的信息。 人们更看重的不是搜索到的网页数量的多少,而是搜索结果的准确性,希望将他 们最关心的网页排在前面。 1 1 2 项目背景 ( 1 ) 相关学科知识循证医学( e v i d e n c e db a s e dm e d i c i n e e b m ) 1 9 9 1 年加拿大m c m a s t e r 大学医学与临床流行病学和生物医学系教授g o r d o n g u y a t t 博士以第一作者身份在美国医学会杂志j a m a 上撰文,首次提出“循证医 学( e v i d e n c e b a s e dm e d i c i n e ”一词。之后,j a m a 发表了题为用户指南的3 2 篇系列文章,引出循证实践的基本概念,并最终发展和扩展为循证医学的教科书。 “循证医学不同于以往的医学实践,它更强调利用发表的文献证据解决临床 问题,对证据进行严格分级,提供指导对医学文献评价分级的实践指南,并充分 考虑病人的需求和意愿解决具体临床问题 4 1 。“循证医学提倡,临床医生应尽量 利用对随机对照试验进行系统评价得到的结论来指导临床决策。这些系统评价通 过m e t a 分析得出影响病人最终结局的最佳临床证据”。循证医学已经成为国际医 学界的主流医疗模式【5 】。 第1 章绪论 利用现有最佳证据进行循证医学实践需要有效筛选证据来源和获取证据。据 统计当前国际范围内约有生物医学杂志2 5 0 0 0 余种,每年发表的文献达2 0 0 余万 篇。临床医务工作者和一般医学研究人员不可能检索并阅读如此浩瀚的文献且辨 别良莠。循证医学采用严格的科学评价,需要从浩如烟海的医学信息中提炼出1 0 具有科学证据的系统评价和实践指南,为临床医师的临床实践和制定医疗决策提 供科学依据,因而亟需大量的e b m 信息资源和服务。 随着信息化和互联网的发展,目前国际上提供大量常见疾病的e b m 最佳证据 的e b m 信息资源正在快速增长,已有几千家国际性、专业化的e b m 网站、杂志、 软件公司等提供大量e b m 病例证据、系统评价、循证指南等e b m 信息资源和服 务,并且可从互联网中在线获取。这些不断丰富的e b m 信息产品和服务大大降低 了e b m 临床的成本,提高了e b m 临床的标准化进程,减低了e b m 走偏的机率, 从丽促使e b m 进入了真正的实用阶段【6 】。 关于临床研究的证据,按其科学性和可靠性大致可分为四级( 可靠性依次降 低) :按照特定病种的特定疗法收集所有质量可靠的随机临床对照试验( r c t - 一 r a n d o m i z e dc l i n i c a lt r i a l ) 后所做的系统评价( s r ) 或荟萃分析( m e t a ) ;单个的样 本量足够的r c t ;包括虽未使用随机对照试验但设计很好的队列研究、病例对 照研究或无对照的系统病例观察;专家意见。 ( 2 ) 国家自然科学基金项目循证医学信息化的智能技术研究 随着信息技术和互联网的飞速发展,提供e b m 最佳证据的e b m 信息资源也 在急剧增加。但是循证医学的信息化、智能化、自动化和市场化程度仍不高,我 国循证医学实践与国际水平有较大的差距。国家自然科学基金项目循证医学信 息化的智能技术研究正是针对这种现状而设立的。该项目面向蕴含丰富循证医 学信息资源的互联网,综合运用数据挖掘、文本挖掘、网络挖掘等智能技术,重 点研究循证医学临床文献、系统评价和实践指南以及临床病案等e b m 最佳证据相 关信息的智能化和自动化的获取、即时更新、高效检索、摘要和综述,以及临床 评估与风险预警、辅助系统评价等关键技术问题,研制循证医学数字平台,以有 效克服制约循证医学发展的技术瓶颈,提高医疗机构的综合实力、经济效益和医 e b m 网络搜索引擎的研究与实现 务人员的医疗水平,并为社会各界提供循证医学信息增值服务,从技术角度根本 缓解医患冲突痼疾,推动循证医学信息化进程特别是在我国的研究、推广和应用, 其社会、科学及经济学意义十分重大,有望取得一些创新性成果。 作者在课题中负责研究循证医学网页的采集、网页数据高效检索技术以及网 站数据的自动文章摘要技术。即根据已知的网站u r l 爬取网站上面相应的数据, 并且将这些数据下载到本地,然后根据这些网页数据建立索引,将搜索出来的结 果呈现给用户,供用户查询。 作者参与的该部分研究任务,在整个课题项目中起着重要的作用,因为它不 但是循证医学的数据来源补充,同时也是这些数据显示给用户查询的一个人机交 互的接口,如果无法快速高效的将这些存在的数据检索出来,很难满足医患的需 要。同时这部分的研究工作也需要后续研究工作的迸一步补充。 1 2 国内外的研究现状和发展趋势 互联网从产生、技术积累到飞速发展的近十年里,给社会带来了无法估量的 影响,在科技、教育、工业等方方面面发挥着巨大的推动作用。随着互联网网站 页面的剧增和用户队伍的不断壮大,搜索引擎越来越成为人们上网浏览时的重要 工具,以在浩瀚的网站页面的海洋中迅速地找到自己所需的信息。这种市场的需 求刺激着搜索引擎的技术不断地走向完善,同时也培育出了几家在国际上享有盛 誉的技术公司,诸如g o o g l e ,a l t a v i s t a ,i n k t o m i ,i n f o s e e k ,y a h o o 等。它们所提 供的搜索引擎各有特色,代表着这一技术领域的最新动态和最高水平。但是,无 论采用何种技术,提供给最终用户的都是信息的搜索功能,这一功能的强大与否 最终还是由用户来判定。随着信息量的急剧增加和基于w 、糯,的新的应用模式的 出现,现有的w e b 搜索引擎也面临着新的挑战。总的看来,搜索引擎技术的未来 发展趋势将主要体现在以下几个方面【7 m 】: ( 1 ) 数据挖掘技术 数据挖掘技术( 也称为数据库知识发现) 被广泛地应用在数据仓库、并行分布式 数据库中,以发现数据中隐含的规律和趋势,用来分析经验、解释原因、制定决 策、指导改进和预测趋势,使数据库具有了知识库的属性。而国际互联网上有着 第1 章绪论 数以亿计的页面,无疑蕴含着丰富的知识宝藏。发展面向互联网的知识挖掘技术, 并将其与灵活实用的检索技术无缝地结合起来,将会向人们提供一个全新的、方 便的、内容空前丰富的学习知识和问题求解途径。 ( 2 ) 多种信息类型的搜索 如前所述,虽然网络上同时并存着多种格式的文件,但人们可以搜索的范围 仍然很有限。人们期待着实用的基于内容的多种格式文件的搜索技术的成熟。 ( 3 ) 与用户的交互 与用户进行充分交互的目的是为了能给出足够精确的搜索结果。系统应能够 尽可能多地了解用户查询问题的领域、所需信息类别、信息用途,尽可能多地获 取用户状况资料,而且系统应能够根据某种规则来区分用户群体,确定其基本需 求特征,从而将用户的需求更多地融入到系统的开发和训练中。用户对搜索结果 的反应也可以作为反馈,由系统收集起来。在关于用户的知识的基础上进行信息 筛选被称为协作过滤。搜索系统甚至还可以提供用户之间或查询之间的沟通途径, 为用户提供多渠道的服务。 ( 4 ) 个性化的支持 提供个性化服务是市场发展的必然趋势,搜索引擎需要提供方便而又安全的 用户信息获取和保存机制,需要实现针对用户搜索和用户反应的学习算法,需要 使用户可以对服务和资源进行裁剪以更贴近于需求,还需要将推( 服务器主动发送 数据) 和拉( 用户主动搜索) 结合起来,最终向用户提供虚拟个人资料库,实现完善 的个性化服务。 ( 5 ) 自然语言查询 自然语言处理长期以来一直是人工智能的一个核心研究领域。对自然语言的 理解是实现搜索的准确描述、保证搜索相关性和相似性的最终的、根本的解决途 径,同时也是建立基于互联网的知识库的最关键技术之一。 ( 6 ) 本土化的搜索 世界上许多著名的搜索引擎都在美国,他们以英语为基础,完全按他们的思 维方式和观点搜集和检索资料,这对于全球不同国家的用户来说显然是不适合的。 e b m 网络搜索引擎的研究与实现 各国的文化传统、思维方式和生活习惯不同,在对网站内容的搜索要求上也就存 在差异。搜索结果要符合当地用户的要求,搜索引擎就必须本土化。 1 3 论文研究的主要内容及意义 虽然存在众多的收集e b m 系统评价和临床实践指南等的网络信息源,但目前 e b m 临床的实际技术环境的发展仍然远远滞后于需求。采集和产生e b m 信息资 源的方式主要依靠人工起草、录入和检索( 简称手检) ,e b m 实践中仍有许多临床 个案须依赖于传统的文献检索,自动化和智能化程度低,工作人员和专家负担重, 工作效率不高,在一定程度上影响了e b m 快速发展。总体说来,e b m 目前面临 以下几个主要技术问题: ( 1 ) 提供e b m 信息资源的专业网站、数据库、期刊杂志成千上万,但是对于 工作繁忙、学习时间少的临床医师来说,不可能抽出大量时间浏览所有网站或者 检索所有数据库。而且各种网站或者数据库的检索方式也有所区别,掌握各种检 索方式和检索技巧,也需要一些精力。因此,如何智能化、自动化地获取这些网 上资源,并把它们送到医生面前,成为需要解决的首要问题。 ( 2 ) e b m 最佳证据随时都在更新,主要的e b m 信息源的更新周期一般为3 - 4 月,因而,如何系统地集成、跟踪并及时更新e b m 证据成为另一必须解决的技术 关键。 1 4 论文的结构 第1 章介绍了本文的研究背景、主要意义及国内外的研究现状,主要研究内 容及论文结构; 第2 章介绍搜索引擎的基本组成,评价搜索引擎的技术指标; 第3 章介绍网络机器人技术以及l u c e n e 全文检索工具包; 第4 章设计并实现了一个可以多线程高效运行网络机器人( l o i n c n s p i d e r ) ,并 对实验数据进行分析; 第5 章设计并实现了一个基于l u c e n e 的e b m 网络搜索引擎系统( l o i n c n ) , 并对实验数据进行分析: 第6 章指出了本系统的一些不足,以及下一步工作的重点; 第2 章搜索引擎的结构 第2 章搜索引擎的结构 2 1 什么是搜索引擎 搜索引擎( s e a r c he n g i n e ) t 1 3 1 是对互联网上的信息资源进行搜集整理,然后供用 户查询的系统,它包括信息搜集、信息整理和用户查询三部分。搜索引擎其实也 是一个网站,只不过该网站专门为你提供信息“检索”服务,它使用特有的程序 把因特网上的所有信息归类以帮助人们在浩如烟海的信息海洋中搜寻到自己所需 要的信息。 2 2 搜索引擎的组成 搜索引擎是利用信息挖掘系统在网络空间寻找和挖掘相关的有用的信息,在 此基础上建立搜索数据库,并且通过提供简单的、友好的查询界面帮助用户进行 网络信息的搜索服务。搜索引擎实际上是网络上面的一类搜索网站,这类网站与 一般的网站不同,他们主要的工作是自动的寻找w e b 服务器的信息,将信息进行 分类,建立索引,然后将索引的内容放在数据库中,以便查询并且将查的结构提 交给用户【1 4 l s l 。 通常来说,一个搜索引擎由搜索器,检索器,索引器和用户接口等四部分组 成。 2 2 1 搜索器 信息采集器( r o b o t ) 的主要功能是从w w w 上获取网页和超链接信息。w w w 结构是一个以网页为节点,超链接为边的有向图,因此r o b o t 的运行可以抽象为 一个有向图的遍历过程。当r o b o t 运行时,只要提供少量用户配置的起始网页, r o b o t 便能根据一定的算法,获取新的网页和超链,并沿着这些超链接在网络上漫 游,收集信息资源。r o b o t 对网站的访问是周期性的,一般为每月一次或数次,访 问次数视网页的更新频率而定。r o b o t 的性能很大程度上影响了搜索引擎站点的规 模。 2 2 2 分析索引器 索引器的主要功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表 示文档以及生成的文档库的索引表,以便用户查询。分析索引器的工作可拆分为 两部分:分析器和索引器。首先,分析器根据网上数据的特点,按照特定的算法, 对已经搜集获得的网页和超链接信息进行分析,从中提取和用户检索相关的网页 描述信息,然后索引器对已分析好的网页的抽象数据中抽出索引项,建立索引。 索引项又分为客观索引项和内容索引项。客观索引项与文档的语义内容无关,如 作者名、u r l 、更新时间、编码长度、链接频次度等。内容索引项反映文档内容, 如关键词及其等级值、短语、单字等。内容索引项包括单字索引项和短语索引项。 索引器建立内容索引项时,对于英文来讲是比较容易提取的,因为英文单词之间 有空格来分隔,而对于像中文等语言,就必须进行词语的切分,这就涉及到中文 搜索引擎中的分词技术。 分析器分析所得的网页描述信息,都是页面到页面描述数据的正排表。索引 器的核心工作就是重新整理这些网页描述信息,对必要的数据项建立倒排表,其 中包括关键词到网页的倒排表、站点到网页的倒排表,为用户的检索做好准备。 分析索引器是搜索引擎的核心技术之一,它的策略很大程度上影响了搜索引擎的 效率与准确性。目前,比较常用的方法是对网页的标题 和内容 进行 索引。 2 2 3 检索器 检索器的功能是根据用户的查询条件在索引库中快速的检索出来文档,进行 文档和查询的相关度评价,对将要输出来的结果进行排序,并且实现某种用户相 关性的信息反馈机制。 2 2 4 用户接口 用户接口的作用就是输入用户的查询条件,显示出来查询的结果,提供用户 相关性反馈机制,主要的目的是方便了用户使用搜索引擎,可以高效率、多方式 的搜索我们想要的信息,用户接口的设计和实现使用的是人机交互的理论和方法。 具体表示如图2 1 所示: 第2 章搜索引擎的结构 图2 1 搜索引擎的基本组成 f i g 2 1b a s i cc o m p o s i t i o no f s e a r c he n g i n e 2 3 搜索引擎的技术指标 ( 1 ) 查全率 搜索引擎查全率是指从搜索引擎系统检索出的与某检索课题相关的信息的数 量与搜索引擎系统中实际与该课题相关的信息总量之比率1 1 9 】。但是在网络环境下, 信息处于动态的变化过程中,搜索引擎查全率指标比较难测算。因此,可以通过 搜索引擎相对查全率作为搜索引擎查全率的补充。搜索引擎相对查全率可操作性 较强,但受人为不确定因素的影响较大。 搜索引擎相对查全率:覆亲笔篱妻鬟器冀妻淼。2 搜索引擎相对查全率= 搜索引擎实际中存在的信息条数一川w 。 ( 2 1 ) ( 2 ) 查准率( 精度) 查准率的概念是检索出来的相关数目和检索的数目之比。查全率和查准率是 一对矛盾体,当他们的值达到了一定时,查全率必然降低查准率,反之亦然。评 e b m 网络搜索引擎的研究与实现 价搜索引擎时,应该以搜索引擎所服务的主要用户的需要特点为标准。用户往往 更强调查准率的提高,但是值得注意的是,无论是强调查全率还是强调查准率, 搜索引擎都不能忽视网络上面的重要的新的相关内容。 ( 3 ) 报道和内容的更新速度 首先,网络上面的最新的信息应该能够及时的在搜索引擎中反应出来2 0 之1 1 。 由于各种网页的更新不是同步进行的,使得搜索引擎自身的数据库的更新情况比 较复杂。陈旧的和其信息源已经无链接的款目要及时删除,如不做及时删除,无 疑就会增加用户的查询负担,但是对于具有较长时间的使用价值并且没有相应的 内容补充进来的信息应该做适当的保留。 2 4 小结 本章介绍了通用搜索引擎的基本组成以及评价搜索引擎的技术指标,对搜索 引擎有了初步的了解。当然根据具体的应用,各搜索引擎系统结构可能会有所差 异,但是基本组成是一致的,尽管各搜索引擎技术各有千秋,但基本原理也是相 同的。 第3 章网络机器入与l u c e n e 第3 章网络机器人与l u c e n e 3 1 网络机器人技术 3 1 1 s p i d e r 设计原则 ( 1 ) r o b o t se x c l u s i o n 标准 r o b o t se x c l u s i o n 标准是网站管理人员用来管理网站各部分是否能被r o b o t 程 序访问的协议。采用的做法是在服务器上创建一个r o b o t s ,t x t 文件【2 2 1 ,说明本站哪 些链接不可以访问,以及本站拒绝哪些r o b o t 访问等等,并且应该具有 h t t p :w e b s i t e n a m e r o b o t t x t 的u r l ,其中的w e b s i t e n a m e 是网站的名字,这个文 件中分别存放在各个搜索程序的访问控制指令,格式如下: u s e r - a g e n t : d i s a l l o w : 其中,u s e r - a g e n t 是用来指定r o b o t se x c l u s i o n 标准所针对的r o b o t 程序的名 称,如果使用了多个u s e r - a g e n t 域,则表示同一种访问策略被应用在多个r o b o t 程序上面,通配符“宰意味着针对所有的r o b o t 程序。d i s a l l o w 制定网站中所限 制访问的u r l 路径,该路径可以是全局的路径或者是局部的路径。所有以该u r l 开始的u r l 都不允许被访问。例如:d i s a l l o w :m y 将不允许访f 6 j m y h t m l 和 m y i n d e x h t m l ,但是d i s a l l o w :m y 贝, l j 是可以访问d i s a l l o w :m y h t m l ,但是不允许访 i h m y i n d e x h t m l 。其中d i s a l l o w :表示整个站点对外关闭,d i s a l l o w :指令后为空表 示整个站点对外开放。每一个记录中至少包含一个d i s a l l o w 域,同时每一个u r l 必须单独占一行,不能出现“d i s a l l o w :c g i - b i n t e m p ”这样的语句,而且在一个记 录中不能出现空行,因为空行是多个记录分隔的标志。如果文件“r o b o t s t x t 中 一行的开始是“ ”,那么表示该行是注释内容,如果该文件中没有现实关联的予 以信息,它被认为是不存在,也就是说所有的r o b o t 程序都可以访问整个站点, 下面是几个r o b o t s t x t 的例子: 在整个服务器上面拒绝所有的r o b o t 程序: u s e r - a g e n t :* e b m 网络搜索引擎的研究与实现 d i s a l l o w : 允许所有的r o b o t 程序访问整个站点: u s e r - a g o r o t : d i s a l l o w : 拒绝名叫b a d b o t 的r o b o t 程序访问以“c 酉一b i n ”或者“t m v 开始的u r l 或者是m y h t m l u s e r - a g e n t :b a d b o t d i s a u o w :c g i b i n d i s a l l o w :t r a p d i s a l l o w :m y h t m l 只允许名叫w e b c r a w l e r 的r o b o t 程序访问整个站点: u s e r - a g e n t :w e b c r a w l e r d i s a l l o w : u s e r - a g e n t :幸 d i s a l l o w : “r o b o t s t x t “中所记录的拒绝访问部分包括以下几种情况:本地信息、动态 生成的页面、可能使r o b o t 程序陷入的黑洞的部分、正在建设中的部分。我们设计 的r o b o t 程序应该严格按照这个标准来执行。当一个搜寻程序在访问这个站点时, 首先要取得”r o b o t s t x t 这个文件,然后按照里面的访问限制来进行相应的访问。 当然搜索引擎可以不理r o b o t s t x t 的约定,但是w e b 管理员可以查看各种日志,找出 违反r o b o t s t x t 的搜索引擎,并有可能封它的i p 。所以作为一个良好的搜索引擎,应 该遵守r o b o t s t x t 的约定。 ( 2 ) r o b o t sm e t a 标记 除了网站管理员可以限$ 1 r o b o t 程序对网页的访问权限外,个人用户也可以限 $ 1 j r o b o t 程序对自己网页的访问权限。方法是用户可以在自己的页面中加入一个 m e t a 标记。r o b o t sm e t a 标记允许一个页面的所有者指定是否允许r o b o t 程序来 索引自己的页面,或者从本页面中提取链接r o b o t sm e t a 标记的格式为: 像其它m e t a 标记一样,它 第3 章网络机器人与l u c e n e 应该放在h t m l 文件的h e a d 区: 二 r o b o t sm e t a 标记指令使用逗号隔开,可以使用的指令包括i n d e x ,f o l l o w , n o i n d e x ,n o f o l l o w 。i n d e x 指令指出r o b o t 程序是否可以对本页进行索引, f o l l o w 指令指出r o b o t 程序是否可以跟踪本页的链接。缺省的情况是i n d e x 和 f o l l o w 。就 这个例子而言,它表明任何搜寻程序都不能索引这个页面,并且不能从中提取链 接。 3 1 2s p i d e r 搜索策略 网络机器人( r o b o t ) 从原理上说是可以遍历整个w w w ,但在事实上这种实现 是困难的。为了更好地搜索对自己有用的网站信息,搜索引擎往往采用深度优先 策略或广度优先策略- 2 6 1 。 ( 1 ) 深度优先搜索策略 它是从起始结点出发,对第一个文档进行分析后,取回第一个链接所指向的 页面,然后分析此页面,再取回其第一个链接所指向的文档,反复执行下去,一 直搜索到那些不包含任何超级链接的文档为止,这算一个完整的链,然后再返回 某一文档,再继续选择该文档中的其它超级链接,它结束的标志是不再有其它超 级链接可以搜索。它的优点是能遍历一个w e b 站点或深层嵌套的文档集合,产生比 较好的文档分布,更容易发现文档的结构,找到最大数目的交叉引用。缺点是当 e b m 网络搜索引擎的研究与实现 w e b 结构相当深时,有可能造成一旦进去,就有再也出不来的情况发生。 ( 2 ) 广度优先搜索策略 在广度优先搜索中,对第一个文档进行分析后,先搜索完该w e b 页面中所有的 超级链接,然后再继续下一层的搜索,直到最底层为止。它的优点一是能找到两 个w e b 文档之间的最短路径;二是不会陷进w w w 中的深层文档中出现出不来的 情况。缺点是对于深层w e b 文档要花很长的时间才能到达。 当前,网站w e b 页面的组织结构直接决定着我们采用的优先策略。本文采用 了灵活设计( 可由用户选择具体站点的深度优先或广度优先遍历方法,默认为广度 优先) 。由于机器人以u r l 列表存取的方式决定搜索策略,所以在实现上其关键问 题在于我们将待搜索队列看作队列还是堆栈。如果看成队列,新的超链接从尾部 进入,从头部取出,构成广度优先遍历。如果看成堆栈,新的超链接从头加入从头 取出则构成深度优先遍历。在实现上j a v a 的向量类v e c t o r t e 常适合用做队列或堆 栈的设计。 3 1 3 s p i d e r 程序结构 构造s p i d e r 程序有两种方式【2 7 。0 1 。第一种是把s p i d e r 程序设计为递归的程序, 第二种是编写非递归的s p i d e r 程序,它维护一个要访问的页面列表。递归是在一 个方法中调用它本身的程序设计技术,在某些项目中使用递归构造s p i d e r 是合理 的方案,当需要重复做同样的基本任务或者是在处理先前任务时可以展现将来的 任务信息时,递归是相当有用处的。递归程序的伪代码如下: v o i dr e e u r s i v e s p i d e r ( s t r i n gu r l ) d o w n l o a du r l p a r s eu r l f o re a c hu r lf o u n d c a l lr e c u r s i v e s p i d e r ( w i t hf o u n du r l ) e n df o r p r o c e s s e st h ep a g ej u s td o w n l o a d ) 在这段代码中,查看单独的一个w e b 页的任务放在一个称为r e c u r s i v e s p i d e r 第3 章网络机器人与l u c e n e 方法中,在此调用r e c u r s i v e s p i d e r 方法来访问一个u r l 。当它发现链接时,这个 方法调用它自己。 虽然递归看起来是构造s p i d e r 程序的一个合理的方案,但是只有在访问相当 少的网页的时候,递归才是合理的,这是因为当一个递归程序运行时候要把每一 个递归压入堆栈( 堆栈是一个基本的程序结构,每一个调用一个方法时候,讲返回 地址存放其中) 。如果递归程序要运行很多次,堆栈会变得很大,它可能会消耗掉 整个堆栈内存并且终止程序的运行。 递归的另外一个问题是在使用多线程的时候,因为多线程允许一次运行多个 任务,多线程和递归是不兼容的,因为在这一个过程中每一个线程都有自己的堆 栈,当一个方法调用它自身时,他们需要使用同一个堆栈,这就意味着递归的s p i d e r 程序不能实用多线程。 。 构造s p i d e r 程序的第二种方法是通过非递归的途径,这样s p i d e r 程序在发现 每一个新网页的时候,它将使用一个不调用自身的方法这种方法使用一个队列, 一个队列很像游乐场的一排人,一个一个等待,同样,非递归的s p i d e r 程序使用 队列,为了得到s p i d e r 程序的处理,新发现的网页必须在队列中等待。 当使用非递归的方法时候【3 i 】,给定s p i d e r 程序一个要访问的网页,它会把这 一页加到它将要访问站点的队列中去,当s p i d e r 程序发现新的链接时候,也会把 它们加到该队列中,当s p i d e r 程序处理完当前的页面,就会在队列中查找要处理 的下一个页面( 这个直接调用处理网页方法和递归的方法不同) 。实际上s p i d e r 程序 总共有四个队列,其中每一个队列保存着同一处理状态的u r l ,它们的总结如下: 等待队列:在这个队列中,u r l 等待被s p i d e r 程序处理。新发现的u r l 被加 入到了这个队列中。 处理队列:当s p i d e r 程序开始处理u r l 时,它们被传送到这一队列中,重要 的是同一个u r l 不能被多次处理,因为这样是浪费的,当一个u r l 被处理之后, 它被移送到错误队列或者是完成队列。 错误队列:如果在下载这以网页时候发生了错误,它的u r l 将被加入到错误 队列,该u r l 达到这一队列之后讲不再移入其它队列,一旦网页移入错误队列, e b m 网络搜索引擎的研究与实现 s p i d e r 程序将不会再对它进一步的处理。 完成队列:如果在下载网页时没有发生错误,该u r l 将被加入到完成队列, 该u r l 到达这一队列之后将不再移入其它队列。 同一时间一个u r l 只能在一个队列中,这也叫做u r l 的状态,这是因为人 们常常使用状态图描述技术及程序,程序按照状态图从一个状态变换到下一个状 态,如图3 1 所示: 图3 1u r l 状态流程图 f i g 3 1s t a t ef l o wc h a r to fu r l 3 1 4s p i d e r 关键技术 ( 1 ) j a v ai n t e m e t 链接技术 使用j a v a 套接字 网络上的每一台计算机都有很多套接字辅助计算机程序生效,这些套接字叫 做端口,他们都编了号。在任一台计算机上,服务器程序必须指定端口号,用于 “倾听 每个连接,而客户端程序必须指定端口号,用于请求连接。多个客户端 能够连接到同一个服务器端1 2 1 3 2 ,3 3 1 ,但是,每一时刻只有一个服务器程序能侦听 同样的服务端口。h r r p 的默认端口是8 0 ,是一个非常重要的端口。 j a v a 中定义了两个类:s o c k e t 和s e r v e r s o c k e t ,在套接字程序设计中特别重要。 客户端使用s o c k e t 类生命客户端套接字,服务端使用s e r v e r s o c k e t 类声明服务端套 接字,建一个点对点的s o c k e t 连接,建立前,一方在监听,另一方在请求,一旦 第3 章网络机器人与l u c e n e 连接建议之后,使用输入和输出流进行客户端与服务端之间的通信,实现数据之 间的双向传输。连接成功之后,客户端和服务端之间没有什么差别,都可以使用 套接字读写数据。 使用u r l 类 u r l 类解析u r l 或者是将其拆成各个组成部分。一旦为指定的u r l 创建了 一个u r l 对象,就很容易将该u r l 解析成主机名和路径。u r l 类还具有打开某 个地址连接的能力,以及从该u r l 检索信息的能力。 ( 2 ) j a 、,a 多线程技术 网页抓取、索引、搜索都应该以多线程的机制运行,这样能够大幅度的提供 工作效率,一个线程的工作是在后台执行程序的一些部分,而程序的其它部分能 够继续运行。当用j a v a 建立一个线程时,必须明确指出后台执行的代码。该代码 包含在j a 、,a 线程的r u n 方法中。j a v a 通过两种方法操作多线程。 执行多线程的第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025辽宁沈阳市东北大学非教师岗位招聘25人考前自测高频考点模拟试题及一套参考答案详解
- 2025年大连金普新区卫生系统招聘事业编制工作人员164人模拟试卷含答案详解
- 2025南平延平塔前镇卫生院招聘医师模拟试卷及答案详解(考点梳理)
- 2025北京怀柔区庙城镇社区卫生服务中心招聘合同制2人模拟试卷附答案详解(黄金题型)
- 2025山东齐鲁文旅集团有限公司春季招聘9人笔试题库历年考点版附带答案详解
- 2025年福建省晋江市新佳园物业发展有限公司招聘18人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025江西赣州市会昌县小镇时代文化传媒有限公司招聘劳务派遣人员1名模拟试卷及答案详解(夺冠)
- 2025年天津市和平区面向甘肃白银会宁籍招聘事业单位工作人员考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025河北张家口市专职消防队伍管理中心第一批政府专职消防员招聘160人模拟试卷及答案详解(夺冠系列)
- 2025年4月广东深圳市第二特殊教育学校面向2025年应届毕业生赴外招聘教师4人模拟试卷及答案详解(有一套)
- 教育培训机构合作培训协议
- 苹果电脑macOS效率手册
- 职称英语A级词汇大全
- 某光伏发电工程EPC总承包投标文件技术文件
- (正式版)JBT 2603-2024 电动悬挂起重机
- JJG(交通) 133-2023 落锤式弯沉仪
- 工厂主管人员值班表
- 消防安全周巡查记录表
- 第三章 护理伦理学基本原则规范和范畴
- 能源化学与能源化工概论-第一章 能源简介
- FZ/T 52058-2021低熔点聚乳酸(LMPLA)/聚乳酸(PLA)复合短纤维
评论
0/150
提交评论