(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf_第1页
(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf_第2页
(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf_第3页
(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf_第4页
(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于lucene的rss搜索与分类.pdf.pdf 免费下载

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

文档简介

摘要 摘要 搜索引擎给互联网带来了巨大的变化,使得人们能够在浩如烟海的知识世 界中,获得自己想要的信息。搜索引擎技术也已经成为信息检索的热门技术。 r s s 信息聚合技术在新闻和博客领域迅速得到推广,使得互联网信息变得结构化 起来。人们对于搜索引擎的要求也越来越高,在实时性方面传统搜索引擎已经 不能满足人们的需求。r s s 搜索引擎呼之欲出,各大知名企业都在暗中角力。 本文提出以r s s 信息为数据来源,在传统搜索引擎的基础上,对进行r s s 信息进行获取和深度挖掘,构建一个实时性较强的r s s 搜索引擎。该研究是在 开源项目基础上进行的,针对中文信息检索对该项目进行了改进。改进了中文 分词和关键字高亮算法,编写了全新的h t 池分析器,实现了分摘要和全文进行 检索,按照相关度和时间两种方式对结果进行排序,并增加了网页快照功能。 提高了用户体验,取得了不错的效果。 本文对基于r s s 的搜索引擎进行了初步研究。在实际的应用中,尤其是在 大规模应用中,好有许多亟待解决的问题有待进一步的研究。本文所积累的一 些经验和资源,也可以作为进一步研究的基础。 关键词:r s s ;l u c e n e ;搜索引擎; a b s 仃a c t a b s t r a c t s e 砌饥g i n eh 勰b r o u g l l tg i g 卸t i cc h 柚g cf o rh t e m e t ,m a k i n gi tp o s s i b l ef o f p c o p kw h 0w 柚t st og a i nt h ei n f o 珊a t i 蛐t h a t 辩l fw 柚l si nt h ev o l u m i n o u s k n o 、棚e d g ew o r l d s e a r c he n 垂n et e c h i l o l o g yh 勰b e 伽eap o p u l 村t e c h i l o l o g yi n i i i f o f m a t i r e t f i c v a l r s si n f b 加a t i o ns y n d i c a t i o nt c c l l l l i q u ei nn e w s 锄db l o g 丘e l ds p r e a d sr a p i d l y ,m a l 【i n gt h eh t e m c ti l l f 0 珊a t i o nm o r cs t m c i u r c d p c o p l e d e m a n d sa l s om o r e 卸【dm o 化h i g h l yt 0s e a r c h i n ge n 百n e ,t r a d i t i o n a l a r c h 蚰g i n e a i r c a d y 啪n o t 姐t i s 母p c 叩l c sn e c di nt h cf i e l do fr c a it i i n en a t l l r c r s s a r c h e n 舀n ei sv i v i d l yp o n m y c d ,c v e r yb i gf 锄o u se m e r 州i si nc l l t - t h r o a tc o m p e t j t i o n t a k i n gr s si n f o 册a t i a sd a t as o u r c c ,t h cb 勰i so ft r a d i t i o ns e a r c he n 百n c , o b t a i ni n f o i m a t i o n 柚dc a r f yo u t t h ec x c a v a t i f r o mr s sf e c d ,t h e nb u i l das t r o n g c r r c a l - t i m er s s s e a r c h 姐画n ci nt h i sl h c s i s n es t u d yw a sc o n d u c 砌衄t h eb a s i so f t h e 叩e n u r c cp r o j e c t l l s i i l gc x i s t i n gt e c h l o 百嚣t oi i i l p r 0 v et h ep 加! j e c t ih a v c i m p r 0 1 ,c dt h e 蛐e s e g m e m 粕dt h ek e y w o r d sl l i g l l l i 曲ta 1 9 0 r i t h m ,c o d c da b r a n d n e wh t m l p a r s e r 陀a i i z e da b s t m c tr e t r i e v a l 锄df u l lt c x t 佗t r i “a l ,o r d e r c d t h er c s u l ta c c o r d i n gt or c l e v 她c ed c g 佗e 锄dp u b l i s ht i i i l ea 1 1 di i i c r e a s e dt h ew 曲 p a g cs n 印s h o tf i l n c t i o n 。a l lo ft h a te i l l l a n c e dt h eu re x p c r i e n c c 锄da c h i e v e d9 0 0 d r e s u n s n i st h e s i sp d o v i d e st h ef o u n d a t i o nr c s c a r c hf b fr s sb 嬲c ds e a r c hc n g i l l e h p r a c t i c a la p p l i c a t i o n ,p a n i c u l a r l yi nl a r g e - s c a i e 印p l i c a t i o 璐,a9 0 0 dm a n yp m b l 锄s t h a tn c e du f g e n t l u t i o ns h o u l db cr c s o i v c di nf i i n h e rs t l l d y w h a t 、】l l r ca c q u i r e dv i a t h ee x p e f i c c s 柚dr c 沁u r c c si n v o l v e dw i mt h i sw o r kc a np r o v i d et h c 如n d a l i l e n t a l b a s i c sf o rn e x ti l a t e dr e s e a r c hi s s u e s k e yw o r d s :r s s ;h c c n e ;s e a r c he n 百n e ; 学位论文版权使用授权书 本人完全了解北京机械工业学院关于收集、保存、使用学位论文 的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和 电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、 缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以 及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向 国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目 的的前提下,学校可以适当复制论文的部分或全部内容用于学术活 动。 学位论文作者签名: 岬年3 月心日 硅瓤璨密语更无薷遂享厂f 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年月日年月日 辛 硕士学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名: 俨1 广、 m 啐 年岁月陟日 第1 章绪论 1 1 问题的提出 第1 章绪论 随着网络信息的爆炸式增长,与自己的需求无关的冗余垃圾信息也越来越 多,而且人们迫切地想一改过去那种被动接受信息的局面,使自己的信息能够 被别人看到,而自己也能看到别人的相关信息,形成一个交流互动的网络。于 是r s s ( r e a l l ys i l i l p l es y n d i c a t i ) 应运而生,通过x m l 这一标准的文件格式, 使互联网上的信息发布者和接受者能够无缝地进行数据交流。r s s 是通过“推” 的方式来提供用户所订阅的信息的,这极大地方便了阅读者,他们只需要打开 专门的r s s 阅读器就可以阅读锁订阅的各种信息,而不需要去浏览这些信息所在 的网站。读者还可以设定自动更新的时间间隔,实时地获得最新的信息。现在 r s s 技术被广泛地应用在门户网站、电子商务网站、博客、b b s 等领域,可以极 大地提高网站信息被阅读的机会,提升网站价值。 就像当初互联网网页数量太多,需要像g o 0 9 1 e 这样的搜索引擎一样,当r s s 资源飞速增长时,同样会面临相同的问题,怎样才能从众多的r s s 资源中找到自 己所需要的呢。必然会导致r s s 搜索引擎的产生。 r s s 搜索引擎的使用方法和g o o g l e 这样的门户搜索引擎一样,用户通过输入 关键字来搜索要查询的内容。不同的是门户搜索引擎是对抓取到的网页内容进 行搜索,而r s s 搜索引擎是对r s s 资源进行检索。 l u c e n e 是一个非常优秀的开源的全文搜索引擎,可以说是一套非常优秀的 s d k ( 开发工具包) ,可以在它的上面开发出各种全文搜索的应用来。l u c e n e 在 国外有很高的知名度,现在已经是a p a c h e 的顶级项目。借助l u c e n e 提供的开发 接口,我们可以获得强大的索引和搜索功能。目前已经有很多j a v a 项目都使用 了l u c e n e 作为其后台的全文索引引擎,比较著名的有; j i v e :w 髓论坛系统。 e y e b r o w s :邮件列表h t m l 归档浏览查询系统,e y e b r o w s 已经成为目前 a p a c h e 项目的主要邮件列表归档系统。 c o c o o n :基于) 【m l 的w e b 发布框架,全文检索部分使用了l u c e n e 。 第l 章绪论 e c l i p s e :基于j a v a 的开放开发平台,帮助部分的全文索引使用了l u c e n e 。 目前各大搜索引擎厂商也都在开发自己的r s s 搜索服务,力图战取w e b 2 o 的 制高点。雅虎测试版的r s s 搜索网站曾短时间曝光,被网友截了图,事后雅虎发 言人没有证实也没有否认这次曝光事件,但足以说明雅虎在开发r s s 搜索引擎 了。另据外电报道,各种迹象显示,m s n 搜索引擎正在密测r s s 搜索功能,这项 新功能可能将在近期推向市场,说明微软也在暗中用力。 国内也有处于测试版的r s s 搜索引擎,比如g r a s s l a n d 、f e e d s s 等。 随着r s s 的应用范围越来越广泛,使用的用户要越来越多,r s s 搜索引擎也 会得到更快的发展,而且与传统门户搜索引擎不同的是,由于数据源的特殊性, r s s 搜索引擎更容易进行分类,便于提供更加个性化的服务;更新时间更短,使 服务实时性更强。 相信r s s 搜索引擎一定会有光明的前景。 1 2 研究背景 1 。2 1 搜索引擎的起源 随着i n t e r n e t 的迅速发展,网上信息不断丰富和发展起来。当越来越多的 人们习惯在网上发布和获取信息的时候,i n t e r n e t 上的信息迅速膨胀成为信息 海洋,为人们提供了丰富的信息资源。然而这些信息却是以各种形式庞杂无序地 散布在无数的服务器上,并且质量不齐,更新变化快,用户要得到真正有价值的 东西有很大的困难。所以,人们需要一种工具,使得信息资源得到有效的利用。 以因特网上的信息为主要处理对象,根据不同的需求检索出有用的信息,因此网 络搜索引擎应运而生。搜索引擎的工作原理与传统的二次文献相同,都是先收集 资源,整理加工以提供检索入口,然后用户通过提供的检索入口进行检索。 世界上第一个搜索引擎诞生于1 9 9 4 年,名叫w e b c r a w l e r ,它通过对网页做 索引来提供检索服务。w e b c r a w l e r 的出现对网络的发展起了极大的促进作用, 自此,搜索引擎进入快速发展阶段。同年5 月,出现了l y c o s 。1 9 9 4 年底,美国著 名的门户网站y a h o o 确立了搜索引擎在i n t e r n e t 的重要地位。除此之外,从1 9 9 5 年到1 9 9 7 年底,比较重要的搜索引擎还包括i n f o s e e k ,a l t a v i s t a ,e x c i t e , h o t b o t ,舭c r o s o f t m s n 等。美国的g o 0 9 1 e 凭借领先的技术后来居上,成为 2 第1 章绪论 世界上规模最大的搜索引擎。 1 2 2 搜索引擎的发展与现状 第一代搜索引擎分为目录式( d i r e c t o r y ) 和全文式( f u l lt e x t ) 两大类。例 如,y a h o o 最初属于典型的目录式分类结构,而a 1 t a v i s t a 则属于全文搜索引擎。 但是从搜索引擎的基本类型看,没有一个搜索引擎绝对使用目录式检索或全文 检索,它们更多是一种混合体,只不过是侧重点不同而己。例如y a h o o 前期主要 采用目录式检索,但从1 9 9 6 年起,y a h o o 先后与a l t av i s t a ,i n k i t o m i 等合作, 在站点上提供关键词检索。1 9 9 8 年i n k i t o m i 的崛起,改变了搜索引擎的格局。 i n k i t o m i 是一家专门制作网页数据库的公司,为y a h o o 、a 1 t 8v i s t a 等1 0 0 多个 公司提供数据库服务,但它只为其他搜索引擎提供数据库,而本身不提供检索, 将开发商与服务商的角色完全分开。因此,有人很形象地称这些搜索引擎为 “0 e m s e a r c h e n g i n e ” 。 2 0 0 0 年,g 0 0 9 1 e 的出现改变了搜索引擎市场的格局。g o o g l e 公司是硅谷新 兴的高新技术公司,这家公司推出的搜索引擎号称是目前世界上功能最强大的 搜索引擎,其搜索范围超过了所有其他搜索引擎,处于世界领先地位。g o o g l e 搜 索引擎还使用了数据挖掘( d a t am i n i n g ) 技术和网站评级方法( p a g er a n k ) ,开 发了自己的操作系统和优化的文件系统,能在很短时间内完成搜索任务。 近年来,随着网络技术在中国的推广和使用,中文网站和网上中文信息资源 的数量急剧增大,而且国内的用户大多还是以访问中文信息为主,据统计,在我 国,中文信息资源的流量占了总信息流量的7 8 。为了便于用户查找中文信息资 源,中文搜索网站应运而生,并且在海外迅速增长。例如,y a h o o 中文、中搜,搜 狗、百度、新浪等。其中百度凭借领先的技术在国内遥遥领先。 1 2 3 搜索引擎的原理 我们平时看到的搜索引擎,实际上只是一个搜索引擎系统的检索界面,当 你输入关键词进行查询时,搜索引擎会从庞大的数据库中找到符合该关键词的 所有相关网页的索引,并按一定的排名规则呈现给我们。不同的搜索引擎,网 页索引数据库不同,排名规则也不尽相同,所以,当我们以同一关键词用不同 的搜索引擎查询时,搜索结果也就不尽相同。但他们的基本原理都是相同的, 3 第1 章绪论 都由网络爬虫,索引器、搜索器、用户接口四部分组成。 网络爬虫的功能是在互联网中漫游,发现和搜集信息。它是一个计算机程序, 日夜不停地运行,尽可能多、快地搜集各种类型的新信息。同时由于互联网上的 信息更新很快,所以还要定期回访已经搜集过的旧信息,以避免死链接和无效链 接。目前有两种搜集信息的策略:一种是从一个起始u r l 集合开始,顺着这些u r l 中的超链( h y p e r l i n k ) ,以宽度优先、深度优先或启发式方式循环地在互联网中 发现信息。这些起始u r l 可以是任意的u r l ,但常常是一些非常流行、包含很多 链接的站点,如y a h 0 0 。另一种是将w e b 空间按照域名、i p 地址或国家域名划分, 每个网络爬虫按照一定深度对一个子空间进行穷尽搜索。网络爬虫的实现常常 用分布式、并行计算技术,以提高信息发现和更新的速度。网络爬虫搜集的信息 类型多种多样,包括h t m l 、】( m l 、f t p 文件、字处理文档、多媒体信息等,并把 采集到的文件分布式存储在各个节点。 索引器的功能是分析网络爬虫所采集的信息,从中抽取出索引项,用于表示 文档以及生成文档库的索引表。索引表一股使用倒排索引( i n v e r s i o nl i s t ) , 即由索引项查找相应的文档。索引项分为两种。一种索引项与文档的语意内容 无关,如作者名、u r l 、更新时间、编码、长度、链接流行度( l i n kp o p u l a r i t y ) 等:另一种索引项是用来反映文档内容的,如关键词及其权重、短语、单字等。 后者可以分为单索引项和多索引项( 或称短语索引项) 两种。单索引项对于英文 来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符( 空格) ;对于中 文等连续书写的语言,必须进行分词处理。在搜索引擎中,一般要给索引项赋予 。一个权值,表示该索引项对文档的重要程度,同时用来计算查询结果的相关度。 使用的方法一般有统计法、信息论法和概率法。 索引器一般使用分布式索引算法。当数据量很大时,必须实现即时索引,否 则不能够跟上信息量急剧增加的速度。索引算法对索引器的性能( 如大规模并发 查询时的响应速度) 有很大的影响。一个搜索引擎的可用性在很大程度上取决 于索引的质量。 搜索器的功能是根据用户的查询在索引库中快速检索出相关文档,进行文 档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反 馈机制。检索器常用的信息检索模型有集合理论模型、代数模型、概率模型和 混合模型四种。一般也是采用分布式算法进行搜索结果的合并,提高响应速度。 用户接口的作用是输入用户查询,显示查询结果,提供用户相关性反馈机 4 第1 章绪论 制。其设计和实现使用人机交互的理论和方法,以充分适应人类的思维习惯。一 般采用简洁的用户界面,使用颜色数量也作了限制。另外还可以让用户对查询 进行限制,如逻辑运算( 与、或、非) 、相近关系( 相邻、n 队r ) 、域名范围( 如 s i t e :s i n a c o m ) 、出现位置( 如标题、内容) 等。 2 4 传统搜索引擎的不足 目前搜索引擎的确风光无限,在给网民带来许多便利的同时也带来了巨大 的经济效益。但这不代表网民对目前搜索引擎表示完全满意,在c h i p 的调查中, 有7 3 3 的网民认为,搜索结果重复率高,搜索到的网页打不开等是一个令人讨 厌的现象。同时,有5 4 1 的网民认为个性化内容少,结果雷同也是不可以忍受 的。另外,还有4 8 3 的网民认为专业行业搜索功能差,有4 9 1 的网民认为 信息更新速度慢,有3 0 1 的网民认为多媒体搜索功能弱。由此看来,搜索引擎 还是需要不断改进和完善,才能满足人们的需要”1 。如图1 1 所示: 5 第1 章绪论 圈民认为目前搜黍引擎的不足之处 培果! 复率商两页打不开 ;,。:h 个性化内容少培果冒同 ! “ + 卜 隅 售息更新建良慢 4 9 1 专生,行生檀窜功能薹 ! 。+,“,。怊3 多蛛沣擅索功越霸 3 d 1 其他 s 采 j o 骺1 湃骺再再雹骺再7 d 再 日百分比 s o u m c h r 新电瞄 囝0 4 bi r 伽c 托hhcwwwi 陀谗c 心c o m j c n 图1 1 目前搜索引擎不足之处 另外,网络信息正以指数级的速度爆炸式增长,目前大部分主流搜索引擎, 包括g 0 0 9 1 e ,只能收录庞大网络信息中的一小部分,而且网络上的大量的新闻、 博客等实时动态信息,使传统搜索引擎显得力不从心。 随着网络信息发布速度的提高,搜索引擎想得到完整及时的信息变得越来 越难。尤其对于在线新闻和博客这些频繁更新数据的数据源,传统搜索引擎每 日出动网络爬虫抓取网页信息的机制已经跟不上这些实时动态数据的更新速 度。 1 2 5r s s 聚合技术的兴起 r s s 可以解释为r e a l l ys i m p l es y n d i c a t i o n ( 真正简单的聚合) ,也可以 解释为r i c hs i t es u 姗a r y ( 丰富站点摘要) ,现在国内通常把r s s 新闻称为 6 第1 章绪论 “聚合新闻”。r s s 新闻聚合服务是基于x 札技术的互联网内容发布和集成技 术。r s s 技术可以自动浏览和监视某些指定网站的内容,将这些网站的内容定时 传送给用户,而用户利用r s s 阅读器就可以方便地读到送上门来的新闻,而无 需到各家网站逐一浏览。该功能可以使读者摆脱广告给浏览带来的烦扰,阅读 器将自动更新所定制的内容,保持新闻的及时性瑚。 发布一个r s s 文件( 一般称为r s sf e e d ) 后,这个r s sf e e d 中包含的信息 就能直接被其他站点调用,而且由于这些数据都是标准的x 虬格式,所以也能 在其他的终端和服务中使用,如p d a 、手机、邮件列表等。而且一个网站联盟( 比 如专门讨论旅游的网站系列) 也能通过互相调用彼此的r s sf e e d ,自动的显示 网站联盟中其他站点上的最新信息,这就叫着r s s 的联合。这种联合就导致一 个站点的内容更新越及时、r s sf e e d 被调用的越多,该站点的知名度就会越高, 从而形成一种良性循环。 r s s 是一个x m l 格式的文件,用来描述网络内容的聚合。r s s 的链接通常被 称作r s s 种子( r s sf e e d ) 。大多数r s s 种子包含标题、日期、链接和内容描 述嘲。下面是一个从新华网得到的一个r s s 种子的例子,它可以说明r s s 的主要 特征: 新华网一健康资讯 h t t p :w w w x i n h u a n e t c o m 新华网新闻中心 专家:堵车时开窗不利健康 h t t p :n e w s x i n h u a n e t c o m h e a l t h 2 0 0 6 _ 0 7 3 0 c o n t e n t4 8 9 4 1 2 3 h t m ? r s s = 1 堵车时,一些人喜欢摇下车窗望望风景、透透气,殊不知这样对健康很不 利。 西安交通大学第二医院呼吸科主任孙秀珍说 7 第1 章绪论 f r i , 2 8j u l2 0 0 60 9 :3 8 :3 4g m t 每个r s s 种子包含且只包含一个 标签,它可以涵盖r s s 种子的所 有信息。一个 标签可以包含一个或多个 标签。对于新闻网站来 说,每个 标签代表了一篇最近的新闻文章。 标签通常又包含几个 其他标签, 标签表示新闻或博客文章的标题。 标签表示唯一指向 该内容的u r l 。 标签包含了文章内容的简短介绍。 标签 描述该文章的发表时间和日期。 上面所述的是r s s2 o 版本,一些网站可能使用更早期的r s s 版本或者其 他的内容聚合格式,比如a t o m 和r d f 。他们都是基于) ( m l 的,都具有 , , , , 等相似的结构”1, 随着r s s 在w e b 应用的日益广泛,网络上的数据变得比以往更具有结构性。 r s s 已经被广泛地应用到新闻和博客网站,用来描述数据和相关信息。这样我们 可以轻易地获得有用信息,而不必每日使用网络爬虫去抓取网页。 1 2 6 基于r s s 搜索的优势 传统搜索引擎更新速度慢,实时性差已经是不争的事实了。有些信息具有 强烈的时间色彩,过了一定的时间就不再具备信息的价值了。比如,租房信息, 过了出租的期限很可能就被其他人租到了,此时这条信息也就失效了。显然, 传统搜索引擎面对这种实时性很强的需求就无法满足。 传统搜索引擎包含着许多垃圾信息,这些垃圾信息与我们想要的搜索结果 毫无关系。 随着网络信息的急速膨胀,网络爬虫的任务也越来越繁重,增加了抓取成 本,甚至相当一部分动态页面是爬虫抓不到的。 基于r s s 的搜索引擎就可以克服上述缺点,只要跟踪r s s 种子的更新就能 够活的实时性较强的信息;使用r s s 聚合的内容很少出现垃圾信息;跟踪特定 的r s s 减轻了网络爬虫的工作负担,能够采集到爬虫涉及不到的动态页面。 8 第1 章绪论 1 3 研究内容与方法 1 3 1 研究内容 设计实现一个基于r s s 的搜索引擎,首先在互联网上获取r s sf e e d ( 可以 是订阅的推送方式,也可以是网络蜘蛛去爬取) ,把f e e d 的信息进行d o m 解析, 把解析结果进行封装,封装成d o c 唧e n t 数据对象,按照管道设计模式,以备后 用。利用l u c e n e 这个全文索引引擎工具包,对d o c 哪e n t 数据对象中的信息进 行中文分词,索引。设计友好的用户界面,当用户搜索相关信息时列出搜索结 果,对关键字进行加亮显示,并会可以按照用户的需要对搜索结果进行个性化 排序。同时提供摘要和网页全文两种搜索模式。如图1 2 所示: l获取r s sf e e a 上上 l 对f c e d 进行札解析封装成d c l c t i l m e n t 对象 上上 l 使用h c c 对。o c i l m e n t 对象进行全文索引 上 l 根据用户的关键字列出搜索结果,提供个性化排 l序,高亮关键字,两种搜索模式 1 3 2 研究方法 图1 2 系统流程图 对现有的r s s 搜索系统进行考察,摸清它的系统架构和工作流程。采用技 术追踪的方法,把国内外一些相关的技术文章进行归类总结。跟踪相关开源项目 的最新发展,使用案例学习法,先实现d e m o ,再从d e m o 的功能去阅读源代码, 9 第1 章绪论 搞清楚项目的架构和思路。运用面向对象思想,才用良好的架构,对开源项目 进行改进,达到既改进系统又不破坏项目原有架构的目的。一切从实际情况出 发,按照实验和自身条件,不盲目求全求大,集中精力在创新点上下功夫。 1 3 2 论文写作框架 本文共分六章: 第一章绪论,介绍信息抽取的基本概念、研究内容、发展现状以及相关技 术等,为我们下面的研究奠定理论基础。 第二章数据采集与解析,首先对软件体系架构模式管道和过滤器作了介 绍,随后介绍了对r s s 进行数据获取的重要工具d o m ,文档对象模型。页面全文 抓取与网页快照进一步深入挖掘r s s 的信息,使我们的到的信息更加完整全面, 为下一章数据对象的封装提供了强有力的支持,可以说本章是在为下一章作铺 垫,为下一章提供了原材料。 第三章数据对象封装,首先讨论了全文检索系统的原理和特点,接着对开 源全文检索工具包l u c e n e 做了介绍并指出了他的几点不足之处,作为下来研究 改进的重点。进一步对l u c e n e 的文档结构作了深入剖析,确定了构建d o c u m e n t 文档的数据源和数据项,并给出了数据封装的方法。封装好的d o c 姗e n t 对象以 备后用。 第四章数据索引与搜索,介绍了搜索引擎中最重要的两大模块,索引和搜 索。为l u c e n e 加入了基于词表的中文分词。介绍了索引的格式、索引的压缩、 建立索引的方法、索引的优化与同步。得出了一种速度较快的高亮策略。提供 了对摘要和全文进行搜索的双重模式。 第五章系统设计与实现,给出了系统的结构图,划分了四大模块,对本系 统的创新点做了论述,并对系统的架构给出分析。 第六章系统性能测试与分析,目的是对实现的系统进行测试和评价。包括 测试方案的提出,各项功能的测试,以及对测试结果的分析。 第七章总结与展望,概括本文的观点和结论,介绍了本文的研究背景、研 究内容、研究方法及本文特点。最后提出了今后工作的展望。 l o 第2 章数据采集与解析 第2 章数据采集与解析 2 1 软件体系架构模式管道和过滤器 2 1 1 软件体系架构产生背景 在经历6 0 年代的软件危机之后,使人们开始重视软件工程的研究。来自不 同应用领域的软件专家总结了大量的有价值的知识。当初,人们把软件设计的 重点放在数据结构和算法的选择上,如k n u t h 提出了数据结构+ 算法= 程序。但 是随着软件系统规模越来越大、越来越复杂,使软件系统的架构越来越重要。 软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规 模的复杂软件系统来说,软件体系架构比起对程序的算法和数据结构的选择已 经变得明显重要得多。在此种背景下,人们认识到软件体系架构的重要性,并 认为对软件体系架构系统、深入的研究将会成为提高软件生产效率和解决软件 危机的最有希望的途径。这时对软件体系架构的研究如雨后春笋般,出现了百 家争鸣的现象,如r a t i o n a l 公司提出了”以架构为中心”的统一软件开发过程 ( r u p ) 。 2 1 2 软件体系架构模式 软件设计的一个核心问题是能否使用重复的体系架构,即能否达到体系架 构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系架构。 基于这个目的,许多学者们开始研究和实践软件体系架构的模式问题。在 p a t t e r n o r i e n t e ds o f t w a r ea r c h i t e c t u r e ( 面向模式的软件体系架构) 中 首次提出了八种体系结构模式:管道和过滤器( p i p e sa n df i l t e r s ) 、层 ( l a y e r s ) 、黑板( b l a c kb o a r d ) 、代理者( b r o k e r ) 、模型一视图一控制器 ( m o d e 卜v i e w - c o n t r o l l e r ) 、微核( 姬c r o k e r n e l ) 、映像( r e f l e c t i o n ) 、表示 一抽象一控制( p r e s e n t a t i o n _ a b s t r a c t i o n c o n t r 0 1 ) 。”。 本系统主要涉及了管道和过滤器( p i p e sa n df i l t e r s ) 模式的应用。 第2 章数据采集与解析 2 1 3 管道和过滤器( p i p e sa n df _ l t e r s ) 管道和过滤器( p i p e sa n df i l t e r s ) 体系架构模式是为处理数据流的系统 提供的一种模式。它是由过滤器和管道组成的。每个功能模块都有一组输入和 输出,功能模块对输入数据流进行增量计算得到输出数据流。功能模块称作过 滤器;功能模块间的连接可看作输入、输出数据流之间的通路,称作管道。每 个处理步骤都被封装在一个过滤器组件中,数据通过相邻过滤器之间的管道进 行传输。 过滤器相对独立,功能单一,即过滤器独立完成自身功能,相互之间无需 进行状态交互。整个管道过滤网络的最终输出和网络中各过滤器执行操作的顺 序无关,并且它们之间的顺序可以进行配置。 图2 1 是管道过滤器模式的示意图: 图2 1 管道过滤器模式的示意图 管道过滤器模式的优点和缺点: 优点: 1 通过使用过滤器交换增加了灵活性 2 通过重组增加了灵活性 3 过滤器组件的重用 4 流水线的快速原型 5 并行处理提高效率 缺点: 1 共享状态信息或者昂贵或者不灵活 2 数据转换额外开销。 3 错误处理 2 1 4 管道和过滤器在本系统中的应用 1 2 第2 章数据采集与解析 本系统在体系结构设计时,十分注重系统的可扩展性和保证开源项目架构 的完整性,为了各个模块的低耦合,采用了管道和过滤器模式,把模块设计成 过滤器,对数据流进行操作,例如,h t m l 解析器模块就是一个典型的过滤器, 通过对数据流的操作把h t m l 中的内容提取出来,过滤掉h t 忱标签、j a v a s c r i p t 代码等非主题内容。又例如,d o c 岫e n t 对象就在采集模块与索引模块之间的管 道中传递,接受过滤器的处理。 通过管道和过滤器模式的使用,使系统结构清晰,数据封装独立,便于今 后的功能扩展。 2 2 文档对象模型( 吣 2 2 1 _ 简介 文档对象模型( d o m ) 是删l 文档的内存中表示形式。d o m 使您能够以编程 方式读取、处理和修改x m l 文档。 文档对象模型( d o c u m e n t0 b j e c tm o d e l ,d o m ) ,是基于树型结构的,是由 w 3 c 制定的标准接口规范。d o m 依据) ( m l 文档的结构将其转换为树型结构的文档 对象模型,用户通过对该对象模型的访问,可以动态地创建文档,遍历文档结 构,对文档中的数据进行修改、移动、删除和插入等操作。 之所以要定义这样一个接口,是因为如果在使用) ( m l 数据时没有一个统一 的接口,每个程序员就要去处理】( m l 语法细节,那些) ( m l 的语法分析器也必然 有一个接口让程序员通过它访问x m l 数据。如果所有语法分析器的接口都不相 同,开发就必须针对某一个分析器,当换了另一个分析器时,就不得不重写程 序。正如数据库有标准的o d b c j d b c 这样的接口规范一样,要做x m l 应用开发, 就需要有一个统一的x 札数据接口d o m ”1 。 ) ( h i ld o m 的设计概念为,将待操作的煳l 文件放入x m ld o m 树对应的各种节 点之中,也就是当用d o m 来操作瑚l 文件时,文件中所有的内容都变成了) ( m ld o m 树上的一个节点。 2 6 1 3 第2 章数据采集与解析 刘畅 男 计算机系 可以看出,在d o m 中,x m l 文档的逻辑结构类似一棵树。文档、文档中的根、 元素、元素内容、属性、属性值等都是以对象模型的形式表示的。该】( m l 文档 所对应的d o m 树如图2 2 所示: 图2 2d o m 树结构图 2 2 2 使用_ 解析x 札文档 j a v a 语言对d o m 提供了强大的支持,使用d o m 解析) 【m l 文档的步骤如下嗍: ( 1 ) 得到d o m 解析器的工厂实例。 d o c u m e n t b u i l d e r f a c t o r y d o m f a c = d o c u m e n t b u i1 d e r f a c t o r y n e w i n s t a n c e ( ) ; 得到j a v a x x m l p a r s e r s d o c u m e n t b u i l d e r f a c t o r y :类的实例就是我们要 的解析器工厂。 ( 2 ) 从d o m 工厂获得d o m 解析器。 d o c u m e n t b u i l d e rd o b u i l d e r = d o m f a c n e w d o c u m e n t b u i l d e r ( ) : 通过j a v a x 珊1 p a r s e r s d o c u m e n t b u i l d e r f a c t o r y 实例的静态方法 1 4 第2 章数据采集与解析 n e 仰o c u n t b u i l d e r ( ) 得到d o m 解析器。 ( 3 ) 把要解析的) ( m l 。文档转化为输入流,以便d o m 解析器解析它。 i n p u t s t r e 锄i s = n e wf i l e i n p u t s t r e 鲫( 飞i n l i b r a r y 姗l ) ; i n p u t s t r e 鲫是一个接口。 ( 4 ) 解析x l l l 文档的输入流,得到一个d o c 姗e n t 。 d o c u 舶e n td o c = d o m b u i l d e r p a r s e ( i s ) : 由x m l 文档的输入流得到一个o r g w 3 c d o m d o c u 鹏n t 对象,以后的处理都 是对d o c u 鹏n t 对象进行的。 ( 5 ) 得到x m l 文档的根节点。 e l e m e n tr o o t = d o c g e t d o c u m e n t e l e m e n t ( ) : 在d o m 中只有根节点是一个o r g w 3 c d o m e l e m e n t 对象。 ( 6 ) 得到节点的子节点。 n o d e l i s tb o o k s = r o o t g e t c h i l d n o d e s ( ) : f o r ( i n ti = 0 :i b o o k s g e t l e n g t h ( ) :i + + ) n o d eb o o k = b o o k s i t e m ( i ) : ) 这是用一个o r g w 3 c d 伽n o d e l i s t 接口来存放它所有子节点的,还有一种 轮循子节点的方法,后面有介绍。 ( 7 ) 取得节点的属性值。 s t r i n ge m i l : b o o k g e t a t t r i b u t e s ( ) g e t n 锄e d i t e m ( ”e 腿i 1 ”) g e t n o d e v a l u e ( ) : s y s t e m o u t p r i n t l n ( e m a i l ) : 注意,节点的属性也是它的子节点。它的节点类型也是n o d e e l e m e n t _ n o d e 。 ( 9 ) 轮循子节点。 f o r ( n o d e n o d e = b o o k g e t f i r s t c h i1 d ( ) :n o d e ! = n u ll :n o d e = n o d e g e t n e x t s i b li n g ( ) ) i f ( n o d e g e t n o d e t y p e ( ) = = n o d e e l e m e n t n o d e ) i f ( n o d e g e t n o d e n 硼e ( ) e q u a l s ( ”n a i l l e ”) ) s t r i n gn a m e = n o d e g e t n o d e v a l u e ( ) : 1 5 第2 章数据采集与解析 s t r i n gn a i i l e l = n o d e g e t f i r s t c h il d ( ) g e t n o d e v a l u e ( ) : s y s t e o u t p r i n t l n ( n 鲫e ) : s y s t e 轧o u t p r i n t l n ( n a i i i e l ) : ) i f ( n o d e g e t n o d e n a m e ( ) e q u a l s ( p r i c e 。) ) s t r i n gp r i c e = n o d e g e t f i r s t c h il d ( ) g e t n o d e v a l u e ( ) : s y s t 伽o u t p r i n t l n ( p r i c e ) : 2 2 3 _ 的节点 d o m 是一些节点的集合,由于文档中可能包含有不同类型的信息,所以定义 了几种不同类型的节点。d o m 中最常见的节点类型有: ( 1 ) 元素:元素是m l 的基本构件。元素的子节点可以是其它元素、文本节 点或两者都有。元素节点还可以只含有属性这一唯一类型的节点。 ( 2 ) 属性:属性节点包含关于元素节点的信息,但它不是元素的子节点 ( 3 ) 文本:文本节点文本信息,或干脆是空白的文本。 ( 4 ) 文档:文档节点是整个文档中所有其它节点的父节点元素是一种很重要 的类型节点,元素节点可以是其他节点的容器。 2 2 4 其它_ 技术 d o m 技术有很多种,包括j d o m 、s a x 等等。 2 3h t 眶解析器 2 3 1 词法分析器j a v a c c 众所周知,y a c c ( y e ta n o t h e rc o 叩i l e rc o 叩i l e r ) 是一个著名的词法分 析和语法分析工具,它是a t t 为了构建c 语言和其他高级语言解析器而开发的 一个基于c 语言的工具。y a c c 和词法记号赋予器l e x 接收由常用的巴科斯一诺尔 1 6 第2 章数据采集与解析 范式( b n f ) 形式的语言定义的输入,并生成一个c 语言的程序,用以对在范式 中所定义语言的输入进行词法分析和相关操作。用户只要通过范式定义好某种 语言,该

温馨提示

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

最新文档

评论

0/150

提交评论