(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)基于lucene小型搜索引擎的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络的迅猛发展,一些企业和校园内部局域网的信息量也大幅增长。 人们发现即使是获取局域网的信息也变得困难。目前虽然已经有g o o g l e 、百度 这些优秀的通用搜索引擎,但是它们并不能很好的解决这个问题。一方面,通 用搜索引擎的覆盖率都不太高,很多局域网的信息都无法完全搜集:另一方面, 通用搜索引擎的页面更新比较慢,信息的实时性、准确性都无法保证。因此, 为了提高局域网内信息检索的效率,本文设计并实现了适用于局域网信息检索 的小型搜索系统。 本文以校园网为平台,在深入研究了通用搜索引擎基本原理、架构设计和 核心技术的基础上,结合小型搜索引擎的个性化需求,构建了一个运行稳定, 性能良好且具有可扩展性的小型搜索引擎系统。论文不仅完成了对整个搜索引 擎系统框架的设计,而且基本上完成了所有的开发测试工作。 本文论述了系统开发的背景和国内外搜索引擎技术发展现状,分析了小型 搜索系统的个性化需求,明确了系统开发过程中要解决的问题,提出了具体的 设计方案。论文的主要工作以及创新如下: 1 利用了分布式处理模型h a d o o p ,搭建了系统分布式框架,提高了系统 的整体性能。 2 针对搜索结果的不准确、滞后问题,分析了网络信息更新的特点,利用 了q u a r t z 作业调度系统,设计并实现了页面更新模块,提高了信息搜索的准确 性和实时性。 3 基于l u c e n e 软件包,设计实现了系统核心的索引和搜索模块,完成了 对页面的索引和搜索。在此过程中,设计了页面解析框架,实现了对多种格式 的文本解析;研究并改进了最大正向分词算法,提高了对中文信息的分词效率; 4 针对搜索结果中出现大量的重复页面的问题,研究了m d 5 算法实现对 索引中重复页面的消除,部分优化了搜索结果。 最后,通过在校园网上运行,分析了运行的数据,证明系统己成功达到了 预期的目标。 关键词:搜索引擎,l u c e n e ,重复页面,中文分词 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft h en e t w o r k ,t h ei n f o r m a t i o no nt h ei n t r a n e to f e n t e r p r i s e sa n dc a m p u sh a si n c r e a s e ds i g n i f i c a n t l y p e o p l ef o u n dt h a ti th a sb e c o m e d i f f i c u l tt og e tt h ei n f o r m a t i o no nt h el a n a l t h o u g ht h e r eh a v e b e e nm a n y o u t s t a n d i n gg e n e r a ls e a r c he n g i n e ss u c ha sg o o g l ea n db a i d u ,t h e ya r en o tg o o d e n o u g ht os o l v et h ep r o b l e m o nt h eo n eh a n d ,t h eg e n e r a ls e a r c he n g i n e sd on o t c o v e re n o u g hi n f o r m a t i o n ,t h ei n f o r m a t i o no nt h el a ni sn o tf u l l yc o l l e c t e d ;o nt h e o t h e rh a n d ,t h ep a g e ss e a r c h e db yg e n e r a ls e a r c he n g i n eu p d a t e dm o r es l o w l y ,t h e e f f i c i e n c ya n da c c u r a c yo fi n f o r m a t i o na r en o tg u a r a n t e e d t h e r e f o r e ,i no r d e rt o i m p r o v et h ee f f i c i e n c yo fi n f o r m a t i o nr e t r i e v a lo nt h el a n ,w ed e s i g n e d a n d i m p l e m e n t e das m a l l - s c a l ei n f o r m a t i o nr e t r i e v a ls y s t e ma d j u s t e dt ot h el a n b a s e do nt h ec a m p u sn e t w o r k , t h ep a p e rd e s i g n e das t a b l e ,g o o dp e r f o r m a n c e a n ds c a l a b l es m a l ls e a r c he n g i n es y s t e ma f t e rad e e ps t u d yo nt h eb a s i ct e n e t s , s t r u c t u r ed e s i g na n dt h ec o r et e c h n o l o g i e so ft h eg e n e r a ls e a r c he n g i n e s ,a sw e l la s t h eb a s i so ft h ei n d i v i d u a ln e e d so fs m a l l - s c a l es e a r c he n g i n e s t h i sp a p e rn o to n l y c o m p l e t e dt h ef r a m e w o r ko ft h e e n t i r es e a r c he n g i n es y s t e md e s i g n ,b u ta l s o e s s e n t i a l l yc o m p l e t e d a l lt h ed e v e l o p m e n ta n dt e s t i n g t h i sp a p e rd i s c u s s e dt h eb a c k g r o u n da n dd e v e l o p m e n to ft h es e a r c he n g i n e t e c h n o l o g ya th o m ea n da b r o a d ,a n a l y z e dt h ep e r s o n a l i z e dn e e d so fas m a l ls e a r c h s y s t e m ,m a d ec l e a rt h ep r o b l e m si nt h ep r o c e s so fd e v e l o p i n gas y s t e m ,a n dp u t f o r w a r das p e c i f i cd e s i g n t h em a i nw o r ka n di n n o v a t i v ep o i n t sa sf o l l o w s : 1 t h i sp a p e rb u i l tad i s t r i b u t e df r a m e w o r ks t r u c t u r e so ft h es y s t e mw i t ha d i s t r i b u t e dp r o c e s s i n gm o d e lh a d o o p ,w h i c hi m p r o v e dt h e s y s t e m s o v e r a l l p e r f o r m a n c e 2 a sf o rt h ei n a c c u r a c ya n dl a gp r o b l e m so ft h es e a r c hr e s u l t s ,t h ep a p e r a n a l y z e dt h en e t w o r ki n f o r m a t i o nu p d a t e d ,a d o p t e d t h eq u a r t zj o bs c h e d u l i n g s y s t e m ,d e s i g n e da n dr e a l i z e dt h ep a g eu p d a t em o d u l e ,a n de n h a n c e dt h ea c c u r a c y a n de f f i c i e n c yo ft h ei n f o r m a t i o ns e a r c h n 3 b a s e do nl u c e n ep a c k a g e ,t h ep a p e rd e s i g n e da n di m p l e m e n t e dt h es y s t e m c o r ei n d e x i n ga n ds e a r c hm o d u l et oc o m p l e t et h ei n d e xa n ds e a r c hp a g e s d u r i n g t h i sp r o c e s s ,i t d e s i g n e dt h ep a g ea n a l y t i c a lf r a m e w o r k ;i m p l e m e n t e dt h et e x t a n a l y s i sf o raw i d er a n g ef o r m a to ft h et e x t ;s t u d i e da n di m p r o v e dt h eg r e a t e s t p o s i t i v es e g m e n t a t i o na l g o r i t h m ,t h e ni m p r o v e dt h es e g m e n t a t i o ne f f i c i e n c yo ft h e c h i n e s ew o r d s 4 i no r d e rt os o l v et h ep r o b l e mo fal a r g en u m b e ro ft h ed u p l i c a t e dp a g e si n t h es e a r c hr e s u l t s ,t h i sp a p e rs t u d i e dt h em d 5a l g o r i t h mt oe l i m i n a t et h ed u p l i c a t e d p a g e si nt h ei n d e xa n do p t i m i z e dt h es e a r c hr e s u l t s f i n a l l y ,i ti sp r o v e dt h a tt h es y s t e mh a sb e e ns u c c e s s f u l l yc o m p l e t e dt h ed e s i r e d o b j e c t i v e st h r o u g hr u n n i n g o nt h ec a m p u si n t e r n e ta n da n a l y z i n gt h eo p e r a t i o nd a t a k e y w o r d s :s e a r c he n g i n e ,l u n c e n e ,t h ed u p l i c a t ep a g e s ,c h i n e s e w o r d s e g m e n t a t i o n i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特另, l j i l 以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名: 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:匝导师签名:卫妞日 武汉理l :人学硕i :学位论文 第1 章绪论 1 1 课题的研究背景与意义 在互联网蓬勃发展的今天,互联网上的信息浩如烟海。人们在享受互联网 带来的便利的同时,却面临着一个如何在如此海量的内容中准确、快捷地找到 自己所需要的信息的问题,由此互联网搜索引擎应运而生。搜索引擎l l 叫 ( s e a r c he n g i n e ,s e ) 是以一定的策略在互联网中搜集、发现信息,对信息进行 理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的。 搜索引擎提供导航服务己经成为互联网上非常重要的网络服务,搜索引擎站点 也被美誉“网络门户”。搜索引擎技术因而成为计算机工业界和学术界争相研究、 开发的对象。 目前虽然已经有了像g o o g l e 、百度这些优秀的通用搜索引擎,但是它们所 提供的服务并不能很好的满足所有人的需求。一方面,由于互联网上信息量巨 大,远超出哪怕是最大的搜索引擎可以完全收集的能力范围。对于任何搜索引 擎来说,要爬取互联网上所有的网页几乎是不可能的。另一方面,任何一次搜 索都会带来大量冗余的网页信息,想要快速获取真正想要的信息依然很困难。 而且,这些通用的搜索引擎的商业气息愈发严重。例如,b a i d u 就采取了竞价排 名的方式获利,这无疑降低了搜索结果的公正性。 随着网络的迅猛发展,一些企业和校园内部局域网的信息量也大幅增长, 利用通用搜索引擎来获取局域网的信息效率不高。实际上,在人们每天浏览的 w e b 信息中,所在的局域网信息占了很大一部分。如何检索这些局域网的信息 也成了信息检索发展的一个重要方向。 相对互联网而言,局域网的数据量要小的多,局域网在信息采集、索引以及 更新等方面都更为方便,它所提供的局域网内的信息搜索结果将更准确和及时。 因此,在局域网内建立小型搜索引擎对获取信息是很有帮助的。 武汉理l 人学硕十学位论文 1 2 小型搜索引擎研究现状与发展趋势 近几年,小型搜索引擎快速发展。在国内,一方面,很多基于主题领域的 小型搜索引擎得到很好的发展。一些音乐搜索引擎以及医药方面的搜索都有很 好的应用。另一方面,在越来越多的学校、企业、比较大型的网站如b b s 都开 始建立了自己的搜索引擎。在国外,比较著名的有:美国教育资源信息搜索的 a s k e r i c ,实现医药文献搜索的h i g h w i r c 加j 等,小型专业的搜索引擎涵盖了很 多方面。g o o g l e 公司在2 0 0 7 年决定向小型网站提供专门的搜索服务。这些都 表明,小型专用的搜索引擎将在人们获取w e b 信息中发挥更重要的作用。 在小型搜索引擎快速发展的同时,越来越多的人致力于研究和发展这些小 型搜索引擎开发技术,l u c e n e 和n u t c h 是其中的代表成果。l u c e n e 是一个高性 能、纯j a v a 的全文检索引擎,完全免费、开源。l u c e n e 几乎适合于任何需要全 文检索的应用,尤其是跨平台的应用。在成为a p a c h e 下的一个子项目后,l u c e n e 得到快速发展,它的设计目标就是为各种中小型应用程序加入全文检索功 能。l u c e n e 只是一个开发包,n u t c h 是一个完整小型搜索引擎,它是和l u c e n e 一样都由d o u gc u t t i n g 开发出来的。用户只要正确的安装就可以实现小型的搜 索功能。 n u t c h 是一个开放源代码( o p e n - s o u r c e ) 的w e b 搜索引擎。相对于大型通用 搜索引擎,n u t c h 主要面向小型专业搜索,运行的成本较低。但是由于n u t c h 的代码开源,用户可以很方便的使用n u t c h ,并可以结合具体情况对n u t c h 进 行研究与改进。 n u t c h 是以l u c e n e 为基础实现的搜索引擎应用程序,l u c e n e 为n u t c h 提供 了文本索引和查询服务的a p i ,而n u t c h 在l u c e n e 的基础上实现了网页收集与 搜索。n u t c h 在总体架构上分为网页收集、建立索引和查询服务三个部分。 ( 1 ) 网页收集程序通过定期收集和增量收集方式从互联网中抓取网页,并将原 始网页建立索引存入数据库中;( 2 ) 建立索引程序则从抓取过来的网页提取其 中的u r l 、标题、内容等关键词,将不同格式的数据源转换成其内部可以识别的 文件格式,然后建立倒排文件,即用文档中的关键词作为索引,文档作为索引 目标的一种结构,从而建立并维护索引库;( 3 ) 查询服务程序接收用户提交的 查询词条,加以分词与过滤,在索引库及数据库中搜索相应的网页,并按照其 内部评分算法对结果进行排序,返回结果。 2 武汉理i :人学硕士学何论文 小型专用搜索引擎与通用搜索引擎相比有很多优点,由于它本身的信息量 小,它不可能取代通用搜索引擎。但是,它是对通用搜索的很好的补充。随着 w e b 上信息的进一步扩大,小型搜索引擎也将会进一步发展,其中已经引起人 们关注的垂直搜索引擎在未来的搜索将发挥更大的作用。 1 3 本文的主要工作 本文在深入分析通用搜索引擎基本原理、架构设计和核心技术的基础上, 以校园网作为实验平台,利用了设计成熟的网络蜘蛛进行网页的抓取,结合开 源的l u c e n e 引擎工具包设计并实现了一个可扩展、可复用的小型的搜索引擎系 统。本文的具体工作有以下几个方面: 1 详细论述系统需求、系统设计原则和目标,明确了系统功能,设计出详 细的系统流程图; 2 研究了网络蜘蛛页面采集原理,利用q u a r t z 作业调度系统实现了定时 调用网络蜘蛛,完成了对本地页面集批量更新;采用了权威页面算法,及时发 现并抓取网络中出现的新鲜页面,进一步提高了信息的实时性; 3 针对w e b 上多种文件格式如h t m l 、p d f 、w o r d 、e x c e l 、p p t 的 问题,设计并实现了页面的解析模块,以到达提取文本内容的目的,方便索引; 4 针对中文搜索引擎中对分词要求,改进的最大正向匹配分词法,设计并 实现了中文分词模块,提高了中文分词的效率和准确性; 5 针对搜索结果中出现的日益严重的重复页面问题,应用m d 5 算法实现 重复页面的去除; 6 设计了简洁实用的用户界面,并对系统进行了测试和性能分析。 1 4 论文结构 本文共分六章。 第1 章绪论。主要阐述了论文的研究背景与意义、搜索引擎的发展现状、 论文的主要工作和组织结构。 第2 章相关技术研究。介绍了系统开发的背景知识。包括通用搜索引擎的 基本原理、架构设计以及网络蜘蛛的原理与结构,l u c e n e 的实现机制和数据流。 3 武汉理l :人学硕士学位论文 第3 章系统结构分析设计。分析了小型搜索系统的个性化需求,明确了系 统丌发过程中要解决的问题,然后提出了具体的设计方案以及系统的实现目标。 第4 章小型搜索系统的实现。在前一章提出设计思想的基础上,利用l u c e n e 工具包,实现了中文搜索引擎系统,并详细介绍关键模块的实现,最后对系统 进行了测试和性能分析。 第5 章测试与性能分析。对该研究工作进行了总结,指出了系统有待完 善和改进的地方,并对需要进一步研究和解决的技术问题做了展望,阐述了下 一步需要进行的工作。 第6 章总结与展望。回顾了本文所做的工作,分析了系统的不足,并提出 了下一步的工作。 4 武汉理l :人学硕士学位论文 第2 章相关技术研究 2 1 搜索引擎的基本结构 目前主流的搜索引擎【1 刁l 主要以页面迭代抓取、全文索引以及关键词搜索为 基本特征,其内部结构如图2 1 所示: 图2 1 搜索引擎结构图 搜索引擎主要由四个部分组成:网络蜘蛛,索引器,搜索器,以及用户接 口。各部分功能如下: 1 网络蜘蛛:采用广度优先( 或者深度优先) 的策略对w e b 进行遍历并下载 文档,系统中维护一个超链接队列,其中包括一些起始u r l 。网络蜘蛛从这些 u r l 出发,下载相应的页面,并从中抽取出新的超链接加入到队列中。不断重 复上述过程直到队列为空。 2 索引器:负责对由网络蜘蛛采集到的网页以及相关描述信息进行标引。 5 武汉理l :人学硕士学位论文 在对原始网页进行一系列的整理、解析后,对提取出的文档内容建立倒排索引, 从而建立起供检索使用的索引数据库【3 1 。 3 检索器:接收用户查询请求,从索引数据库中找出与查询请求相关的 文档,然后将结果集按相关度排序返回给用户 3 1 。 4 用户接口:为用户提供可视化的查询输入和结果输出界面。在查询输 入界面中,用户按照搜索引擎的查询语法指定待检索词条及各种简单,高级检 索条件。在输出界面中,搜索引擎将检索结果展现为一个线性的文档列表【3 l 。 在搜索时,用户通过用户接口输入关键词组后,关键词组将被发送到分析 器进行分析,一般是进行分词操作。经过分析的关键词将被送往搜索器,搜索 器将从关键词索引库中提取关键词的相关信息,即关键词所在页面的u r l 及相 关信息等。由于搜索到的页面往往有成千上万条之多,所以要经过结果排序器 进行排序,排序结果最后以h t m l 或x m l 形式发送到用户接口,一个搜索过 程到此完成。 2 2 网络蜘蛛的结构与工作流程 网络蜘蛛【4 1 【5 j 是一种从i n t e r n e t 专门下载w e b 网页的程序,它基于h t t p 协 议,广泛采用了多线程并发同步技术。总体结构如图2 2 所示: 图2 2 网络蜘蛛的总体结构 主线程是系统的入口,主线程的主要工作是构造线程池,以启动工作线程 实现爬取。线程池是一种线程组织管理方法。由于线程的创建将消耗一定的系 6 武汉理i :人学硕士学位论文 统资源,所以为每一个u r l 创建一个线程并不现实。一个好的解决方法就是只 创建一定数量的工作线程在线程池中等待。当有任务时,工作线程便开始运行, 否则它们一直等待1 6 j 。 u r l s e r v e r 是对u r l 队列及其相关操作的一个封装,为工作线程提供无重 复的u r l 。u r ls e r v e r 在内部维护着多个队列用于存储有状态和优先级的 u r l ,来避免u r l 的重复爬取和实现u r l 的优先爬取策略。 页面存储模块的功能比较简单,它为工作线程提供文件存储服务。它将线 程请求到的h t m l 字符序列存储到本地文件或数据库。 当线程从u r l s e r v e r 获取到u r l 后,它将发送一个h t i t 请求来获取u r l 所指向的网页。获取成功后对网页代码进行解析,从中提取更多的u r l 并发往 u r ls e r v e r 作为以后继续爬取的目标。网页被解析完后,将被页面存储模块存 储。整个爬取过程是一个循环的过程,具体步骤如下: 1 将初始u r l 放入爬行数据库u r l s e r v e r 中。 2 根据u r ls e r v e r 中存储的u r l 及其状态生成一个待爬取的u r l 列表。 3 从待爬取列表中取出下一个待爬取的u r l ,进行网络连接并下载u r l 对应的网页。 4 解析网页内容。将得到的网页送给搜索引擎的文档解析模块,由其对网 页进行分析、信息抽取并将页面内容存储于网页库p a g e d b 中。 5 提取所爬取页面中的所有链接,更新爬取信息库u r l s e r v e r 6 。 重复步骤k 5 直到达到指定的爬取层数。爬取的流程图如图2 3 所示: 图2 3 页面爬取的工作流程副6 l 7 武汉理:j :人学硕十学位论文 2 3l u c e n e 技术 2 3 1l u c e n e 的实现机制 l u c e n e l 7 1 1 s j 是a p a c h e 软件基金会i a k a r t a 项目组的一个子项目,不是一个完 整的全文检索引擎,是一个开放源代码的全文检索引擎工具包,是一个全文检 索引擎的架构,它提供了完整的查询引擎和索引引擎,以及部分文本分析引擎。 l u c e n e 的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标 系统中实现全文检索或者是以此为基础建立起完整的全文检索引擎【9 j 。 l u c e n e 是一个高性能、纯j a v a 的全文检索引擎,而且免费、开源。l u c e n e 几乎适合于任何需要全文检索的应用,尤其是跨平台的应用。 图2 4l u c e n e 源码结构与系统结构1 9 i 从图2 4 中我们清楚的看到,l u c e n e 的系统由基础结构封装、索引核心、 对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。 l u c e n e 将所有源码分为了7 个模块( 在j a v a 语言中以包即p a c k a g e 来表示) , 各个模块划分如图2 4 所示。需要说明的是o r g a p a c h e 1 u c e n e q u e r y p a s e r 是 做为o r g a p a c h e 1 u c e n e s e a r c h 的语法解析器存在,不被系统之外实际调用,因此 8 武汉理i :人学硕十学位论文 这里没有当作对外接口看待,而是将之独立出来。每个包的实际功能如表2 1 所示: 表2 1l u c e n e 包结构功能表1 9 】 包名功能 o r g a p a c h e 1 u c e n e a n a l y s i s 语言分析器,主要用于的切词,支持中文主要是扩展此 o r g a p a c h e 1 u c e n e d o c u m e n t 索引存储时的文档结构管理,类似于关系型数据库的表 结构 o r g a p a c h e 1 u c e n e i n d e x 索引管理面包阔索引建立、删除 o r g a p a c h e 1 u c e n e q u e r y p a r s e r 查询分析器,根据查询关键词间的运算,如与、或、非 等 o r g a p a c h e 1 u c e n e s e a r c h 检索管理,根据查询条件,检索得到结果 o r g a p a c h e 1 u c e n e s t o r e 数据存储管理,主耍包括一磐底层的i 0 模作 o r g a p a c h e 1 u c e n e u t i l 一凿公用类 从面向对象的观点来考察,l u c e n e 应用了最基本的一条程序设计准则:引 入额外的抽象层以降低耦合性。首先,引入文件的操作o r g a p a c h e 1 u c e n e s t o r e 的封装,然后将索引部分的实现建立在( o r g a p a c h e 1 u c e n e i n d e x ) 其之上,完 成索引核心的抽象。在索引核心的基础上开始设计对外的接口 o r g a p a c h e 1 u c e n e s e a r c h 与o r g a p a c h e 1 u c e n e a n a n y s i s 一个局部细节上,比如 某些常用的数据结构与算法上,l u c e n e 也充分的应用了这一条准则。高度的面 向对象使得l u c e n e 的实现容易理解,易于扩展【1 0 1 。 l u c e n e 在系统结构上的另一个特点表现在其引入了传统的客户端服务器结 构以外的的应用结构。l u c e n e 可以当作库被包含进入应用本身中去,而不是做 为一个单独的索引服务器存在。所以,l u c e n e 提供一个全文索引引擎的架构, 而不是实现。 l u c e n e 接口设计的比较通用,输入输出结构都很像数据库的表一 记录一 字段,所以很多传统的应用文件、数据库等都可以比较方便的映射到的存储结 构接口中。总体上看,可以把l u c e n e 当成一个支持全文索引的数据库系统。 9 武汉理【人学硕十学位论文 2 3 2l u c e n e 数据流 l u c e n e 系统中的主要的数据流以及它们之间的关系如图2 5 所示: 图2 5l u c e n e 系统中的数据流图1 9 l 图2 5 很好的表明了在l u c e n e 内部的数据流组织情况。图中共存在4 种数 据流,分别是文本流、t o k e n 流、字节流与查询语句对象流。文本流表示了对于 索引目标和交互控制的抽象,即用文本流表示了将要索引的文件。而在文本流向 用户输出信息的实现中,l u c e n e 中的文本流采用了u c s 2 作为编码,以达到适应 多种语言文字的处理的目的。t o k e n 流是l u c e n e 内部所使用的概念,是对传统文 字中的词的概念的抽象,也是在建立索引时直接处理的最小单位。字节流则是对 文件抽象的直接操作的体现,通过将固定长度的字节定义为比特位长,后面文件 格式将详细叙述流的处理,将文件操作解脱出来,也做到了与平台文件系统的 无关性。查询语句对象流则是仅仅在查询语句解析时用到的概念,它对查询语 句抽象,通过类的继承结构反映查询语句的结构,将之传送到查找逻辑来进行 查找的操作。 1 0 司 田 武汉理i :人学硕十学位论文 图2 5 中涉及到了多种逻辑,基本上直接对应于系统某一模块,但是也有跨模 块调用的问题发生,这是因为l u c e n e 的重用程度非常好,可以实现直接调用以 前的工作成果,这在某种程度上加强了模块藕合性,也是为了避免系统的过于庞 大以及不必要的重复设计的一种折衷体现。 2 3 3l u c e n e 索引结构 l u c e n e 采用的是倒排索引结构,它以词作为索引的中心,建立了词 文档 的映射关系。在搜索时,它是根据词来搜索文档,而不是通过查找文档来发现 词。 在l u c e n e 索引文件中,有如下概念: 1 段1 9 l ( s e g m e n t ) l u c e n e 索引可能由多个子索引组成,这些子索引称为段( s e g m e n t ) 。每一段 都是完整独立的索引,能够被搜索。索引的方式是:为新加入的文档创建新段, 合并已经存在的段。搜索时可能涉及到多个段或者多个索引,每一个索引又可 能由一些段组成。 2 文档f 9 】( d o c u m e n t ) l u c e n e 用一个整形( 1 1 1 t e r g e r ) 的文档号来指示文档。第一个被加入到索引中 的文档就是o 号,顺序加入的文档将得到一个由前一个号码递增而来的号码。 在删除和插入时文档号是变的,所以在l u c e n e 外部存储这些号码时必须小心 3 域【9 1 ( f i e l d ) 域( f i e l d ) 是一个关联的元组,由一个域名和一个域值组成,域名是一个字 符串,域值是一个项( t e r m ) ,比如“标题”的项可以组成一个域。标题应该会被用 在搜索结果里,因此它会被作为一个字段添加到文档对象里。这些字段可以被 索引,也可以不被索引,而原始的数据也可以选择保存在索引里。保存在索引 里的字段在创建检索结果页面的时候会很有用。域值也可以被切分( t o k e n i z e d ) , 这就意味着一个分析程序会将输入到域里的内容分解成搜索引擎能够使用的标 记( t o k e n ) 。 4 项1 9 】( t e r m ) 项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位 置,出现次数等信息。 l u c e n e 索引由若干段组成,每一段由若干的文档组成,每一个文档由若干 武汉理j :大学硕十学位论文 的域组成,每一个域由若干的项组成。项是最小的索引概念单位,它直接代表 了一个字符串以及其在文件中的位置、出现次数等信息。域是一个关联的元组, 由一个域名和一个域值组成,域名是一个字串,域值是一个项。索引文件的结 构如图2 6 所示: e 丑固 | 器r 茸7 1 嚣鬻露i _ r - , l 一 日| 司 除一i | : i 詈儿二;岩 | j | 旱卜= 一| | u l 一。 ; 2 4 本章小结 图2 6l u c e n e 索引结构图 本章主要描述了系统开发中所使用的的相关技术,首先介绍通用搜索引擎 基本结构,并讨论了搜索引擎的四个主要部分的功能;然后详细地介绍了网络 蜘蛛结构和工作流程。最后研究和分析了l u c c n c 的实现机制、数据流、索引结 构。 1 2 武汉理f 人学硕十学位论文 第3 章系统结构分析设计 3 1 系统需求分析 对于大型的局域网如校园网、企业网而言,要快速准确的检索其局域网内 部的信息,现阶段的主要办法是采用通用搜索引擎。但是,一方面,通用搜索 引擎的覆盖率不高,无法保证所有的局域网信息都被索引;另一方面,通用搜 索引擎的信息量大,信息更新缓慢,搜索的实时性和准确性很难保证,搜索的 冗余信息也多。因此,建立局域网内的小型搜索系统以解决局域网的信息检索 问题成为必要。 随着对搜索引擎技术的深入研究,我们发现建立一个小型的搜索系统是可 行的。这主要是因为: 1 技术成熟。关于搜索引擎方面的理论知识和实践技术极为成熟,这保证 了小型搜索系统的开发设计的准确性; 2 开发简单。一些功能良好的开源技术如网络蜘蛛等的采用,大大降低了 系统开发的难度; 3 硬件的要求不高。采用分布式设计,只需要几台普通的计算机就可以保 证系统的整体性能。 任何搜索引擎系统的设计首先要面对问题是如何对w e b 上大量的信息进行 索引和搜索,尽可能快速的返回用户最需要的信息。小型搜索引擎也是这样。 此外,通过对我校校园网的使用情况调查,发现校园网的信息总量大约为1 0 0 g , 大部分是中文信息,内容主要集中在教学信息、公告、报告等方面,除了h t m l 文件,网络上大量存在w o r d ,p d f 等格式的文件。而且,网络上信息的更新 速率比较快。 因此,面向我校校园网的小型搜索系统在功能上要保证以下3 点: 1 能根据关键词对局域网信息进行搜索,并能快速准确的返回搜索结果。 2 系统具有良好的中文分词、页面解析以及页面更新等功能。 3 具有清晰友好的网络用户界面,操作简单方便。 1 3 武汉理i :人学硕十学位论文 3 2 系统设计图 论文旨在结合l u c e n e ,s p i d e r 建立一个适合校园网络使用的小型搜索系统, 实现对局域网上常用文档的全文检索,能在较短周期内更新页面信息,有较准 确的中文信息分析功能。系统使用s p i d e r 对局域网的网络资源进行采集和周期 性更新,利用并改进l u c e n e 对采集的信息资源进行索引和检索,最后开发了一 个适合现代企业或校园使用的小型信息检索平台。 系统主要由六个主要的功能模块组成:信息采集模块,信息更新模块,索 引模块,页面去重模块,搜索模块,以及用户界面。其中索引模块又分三个部 分:解析器( v a r s e 0 ,分析器( a n a l y z e r ) 和索引器( i n d e x e r ) 。 信息采集模块主要是利用网络蜘蛛实现对w e b 信息的抓取下载。 信息更新模块主要负责对已有的w e b 信息资源进行周期性的更新,以保证 索引的信息与w e b 信息的一致性。 索引模块负责对下载的资源进行索引,并写入本地存储器以方便搜索。其 中p a r s e r 负责对各种格式的文件解析以提取文本信息,a n a l y z e r 负责对文本进 行分析主要是分词,i n d e x e r 负责对文档的词建立索引。 搜索模块负责从索引库中搜索包含查询关键字的文档内容。页面去重,负 责消除索引器中可能的重复页面,以提高搜索效率。 用户界面用户与系统的接口,负责用户关键字的输入以及信息的返回。 系统设计如图3 1 所示t 1 4 武汉理l :人学硕士学位论文 广一卜弋 信息采囊l s d 盯i s p d h ks t a t i d 矗rn 之弓 e一刁- l 新1 乡 素引 乡 _ 析善 之多 分析-l页面击t 一一 之多 童 i 墨 之乡 之多 f ) l索引库i , 多 幢素譬 多 用户接口 图3 1 系统总体设计图 下面介绍图中各模块之间的关系以及系统的流程。 首先s p i d e r 到网络上下载资源文档,如h t m l 文件、e x c e l 文档、w o r d 文 档、p d f 文档等,并将下载到的文件保存在本地的页面库中。之后,解析器将 s p i d e r 下载的文件解析转换为统一格式的文本文件。分析器读入解析器处理生 成的文本文件进行分词处理,并提供词元序列以进行索引。索引器从中文分词 模块提供的词元序列中读入词元,然后对词元进行索引,并将索引结果保存到 索引数据库中。在索引完成之后,利用网面去重算法消除索引中的重复页面, 实现一定程度的搜索优化。使用t o m c a t 服务器发布系统,当用户通过搜索界面 输入要查询的关键词并提交后,关键词被传递到搜索器中,搜索器到索引数据 库中进行检索,检索到的结果经过排序及摘要生成等处理之后,作为响应发送 给用户。 武汉理l 1 人学硕士学位论文 3 3 系统详细设计 3 3 1 页面更新模块设计 人们在进行搜索时,总是希望能准确获取最新的信息。而实际上,每次的 搜索结果里面总有死链接或信息明显过时的页面存在,有些新出现的页面却不 能被搜索到。出现这种情况的原因是网上实际的页面以被删除或有修改,但是 下载到本地页面库中并没有及时的更新。页面更新的功能就是尽量保证本地页 面内容和实际页面内容的一致性。它的做法是在信息提取完成后的一定时间内, 搜索引擎需要再次指导网络蜘蛛进行网络爬取,刷新已经发生变化了的已被提 取的页面内容、发现并提取网络上新出现的网页。 1 刷新已提取页面内容 对于这个问题,目前技术上还无法确定页面集中哪些已提取的页面发生改 变,解决这个问题的最好办法是对w e b 上的页面重新抓取,生成新的页面集来 取代旧的页面集。当要更新页面集的时候,s p i d e r 将重新爬取整个网络,创建 一个新的页面集以代替旧的页面集。这种更新方式称为批量更新。如果批量更 新频繁进行的话,虽然能够保证页面集的新鲜度,但是占用大量的网络带宽和 计算资源,也加重了访问站点的负担。因此,批量更新时必须考虑合适的更新 周期,这就需要了解页面的变化周期。 页面变化周期是指页面本次被修改到下一次被修改这一段时间。不同页面 的变化周期不一定相同,同一页面的变化周期在不同的时期也不一定相同。由 于w e b 页面的更新或删除没有固定的规律可循,因此很难直接估计w e b 页面实 际变化周期。针对这个问题,j u n h o o 等人在论文 中准确的阐述了各种类型的 网站变化情况,如图3 2 所示。水平轴表示页的平均修改间隔,垂直轴显示了 给定时间间隔里多少比例的页面发生了变化,这种变化是指页面的删除、增加、 修改等。 1 6 1 4 ,z 1 e h 5 图3 2 各种网站内容变化图 从图中可以看到,e d u 类型的网站一天之内_ j j 有2 左右的页面发生变化; 在一周到一个月的时间内有1 8 的页面发生改变。结台本系统的页面抓取速度, 同时保证信息的实时性,我们确定本系统更新的时问周期为一个月。这个周期 是可以修改的,在以后的运行过程中,根据实际的统计数据加以改正。 2 发现并提取网络上新出现的网页。 如果能发现新出现的页面,我们就可以采用另一种的更新方式即增量式更 新。它是在本地页面集到达预期规模后继续访问w e b 站点,并将新发现的页 面添加到奉地页面集中。使用增量更新i ”邺】,可以在页面集中用新的和更重要 的页面替换相对不重要的页面。增量式更新只对部分页面进行更新就可以刷新 页面集,可以大幅度减少批量更新次数,提高系统运行效率。 在此采用丁基于权威页的增量信息提取算法,以发现新出现的页面。 分析发现,网上大部分的信息不是孤立的。人们设计一个新的网页后,网 站编辑总是会根据对页面进行分类分级处理的r 常习喷,在首页或者分级入面 中添加指向新贞面的链接。基于这样的考虑,我们给出如f 权威页的定义为: 权威页中拥有很多指向本站其它链接的页面,在该页上往往可以找到指向该网 站新出现页而的链接。因而,我们可以通过索引页的方式柬找到新出现的页面。 经过分析,权威页的评判标准是: ( 1 1 网页为站点首页; f 2 1 网页u r l 为网站的一级、一级、三级目录; f 3 1 刚页u r l 以i n d e x 、d c a f u l t 或英文主题词加上h t m l 或动态页面结尾; 武汉理l :入学硕士学位论文 ( 4 ) 获得的网页为x m l 文档,且该文档符合r s s 或a t o m 规范【1 3 1 ; 假如一个网页符合以上条件之一,即可认为该网页为权威页。 基于权威页的增量信息提取算法流程如下: ( 1 ) 查找索引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论