(计算机应用技术专业论文)全文索引引擎lucene的研究及其手机中的应用实现.pdf_第1页
(计算机应用技术专业论文)全文索引引擎lucene的研究及其手机中的应用实现.pdf_第2页
(计算机应用技术专业论文)全文索引引擎lucene的研究及其手机中的应用实现.pdf_第3页
(计算机应用技术专业论文)全文索引引擎lucene的研究及其手机中的应用实现.pdf_第4页
(计算机应用技术专业论文)全文索引引擎lucene的研究及其手机中的应用实现.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

华北电力大学硕士学位论文 摘要 本文在仔细分析搜索引擎市场和w a p 市场的发展趋势后,把搜索引擎和w a p 这两个非常具有研究价值的应用方向结合起来,提出了一种具有市场发展潜力的实 际应用。对开源搜索引擎l u c e n e 的搜索能力试验积累的数据和重用过程中遇到的 一些问题进行了探讨和研究,解决了如何抓取w a p 网络和怎样完成h t m l 格式文 件到w m l 格式文件转换的两个关键问题,并对转换方法进行了对比。对如何在 w a p 网络中搜索彩图、彩铃的技术也进行了详细地介绍。通过研究分析,开发了一 个可以实际通过w a p 网络访问的无线搜索引擎,提供了相关的搜索服务,并对未 来w a p 搜索引擎的发展以及论文下阶段的工作方向进行了详细的分析和描述。 关键词:l u c e n e ,g a p ,h t m l ,w m l ,搜索引擎 1 1 l et h e s i sf i r s ta n a l y z e st h ed e v e l o p m e n tt r e n do fs e a r c he n g n em a r k e ta n dw a pm a r k e ti n d e t a i la n dt h e r e a f t e rc o m b i n e st h e s et w oo fg r e a tr e s e a r c hv a l u et op r o p o s eak i n do fp r a c t i c a l a p p l i c a t i o nw i t hm u c hm a r k e tp o t e n t i a l t h e r ea r es o m ep r o b l e m sc o m i n gu pw i t hd a t a a c c u m u l a t e di nt h et e s t so fs e a r c h i n gc a p a c i t yo fo p e ns o u r c es e a r c hc n 画n c ,i 埘c e n ea n di n p r o c e s so f 佗一u t i l i z a t i o n t 1 l et h e s i sp r o b e si n t ot h e s ep r o b l e m sa n ds o l v e st w ok e yp r o b l e m s : h o wt os n a t c hw a pn e t w o r ka n dh o wt ot r a n s f o r md o c u m e n tf o r m a to fh t m li n t ow m l a n dc o m p a r e sd i f f e r e n tm e t h o d so ft r a n s f o r m a t i o n n et h e s i sa l s oi n t r o d u c e st e c h n i q u e so f s e a r c h i n gc o l o r f u lw a l l p a p e r sa n dc r b t i nd e t a i l b a s e do nr e s e a r c ha n da n a l y s i s ,t h et h e s i s d e v e l o p sa w i r e l e s ss e a r c he n g i n ew i t hr e l e v a n ts e a r c h i n gs e r v i c et h r o u g l lv i s i t i n gw a pn e t b e s i d e s ,t h et h e s i sg i v e sad e t a i l e da n a l y s i sa n dd e s c r i p t i o no ft h ef u t u r ed e v e l o p m e n to f w a ps e a r c he n g i n ea n dt h ed i r e c t i o nf o rt h en e x ts t a g eo fw o r k l is i d a ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o ll i nb i y i n g k e yw o r d s :l u e e n e ,w a p ,h t m l ,w m l ,s e a r c he n g i n e 声明 本人郑重声明:此处所提交的硕士学位论文全文索引引擎l u c e n e 的研究及其手 机中的应用实现,是本人在华北电力大学攻凄硕士学位期间,在导师指导下进行的研 究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 学位论文作者签名: 奎堡达 日 期:型2 :至:! 三 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播 学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:至燮导师签名:生空羞羞 日 期:勘翊,l :! !日期:也z :三:! 兰 华北电力大学硕十学位论文 1 1 研究背景及意义 第一章引言 随着计算机技术和互连网技术的飞速发展,网络上的信息量急剧增长,要在浩 如烟海的网络世界中寻找需要的信息,作为现代信息获取技术的主要应用搜索 引擎是必不可少的。 i n t e r n e t 正以前所未有的态势改变着整个世界,现己成为人类有史以来资源最 多、品种最全、规模最大的信息库,其信息来源丰富、分布广泛,各种类型信息资 源异构地分布于网络空间中,如果不能使庞杂的信息有序化,就很难有效获取。如 何准确有效地从i n t e r n e t 上获取信息,就显得十分迫切和重要“1 。 信息获取技术包含信息的表示、存储、组织和对信息的访问方法。信息的表示 和组织是为了让用户更容易地访问到需要的信息。一般来讲,信息获取的流程分为 以下几部分。 1 在获取信息之前,首先需要构造文本数据库,即将来需要进行检索的数据。 2 在有了文本数据之后,需要建立文档的索引。利用索引技术可以大大提高信 息检索的速度。当前有很多种建立文档索引的方法,然而对于大规模的数据量来讲, 用得最多的是倒排索引技术。 3 在建立好索引之后,就可以对其进行检索了。用户首先给出一个查询,该查 询将被分析,然后利用文本处理技术进行处理。在查询操作进行之前还可以对其进 行一些预处理。 4 最后根据用户的查询将获取一些文档,这就是检索结果。在把检索结果反馈 给用户之前,还可以对检索结果按照一定的次序排序,以使符合用户需要的文档能 够排在更前面。 搜索引擎在1 0 年之前对大家来讲还是一个非常陌生的概念,然而现如今,它 正在逐渐地改变着人们获取信息的方式,越来越引起人们的重视。 搜索引擎并没有一个精确的定义,一般来讲,大致可以分为两大类:全文搜索 引擎( f u l l t e x ts e a r c he n g i n e ) 和分类目录( d i r e c t o r y ) 。 全文搜索引擎通过一个叫网络机器人( c r a w l e r s ) 或叫网络蜘蛛( s p i d e r ) 的 软件,自动分析网络上的各种链接并获取网页信息内容,按规则加以分析整理,记 入数据库。g o o g l e 、百度就是比较典型的全文搜索引擎系统。 分类目录则是通过人工的方式收集整理网站资料形成数据库的,比如雅虎中国 以及搜狐、新浪、网易等网站的分类目录。 1 华北电力大学硕士学位论文 这两种类型的搜索引擎各有优缺点。全文搜索引擎的使用以关键词和一定的语 法为特点,而分类目录则通过建立多级目录对网站进行分类。它们在使用上各有长 短。全文搜索引擎因为依靠网络机器人搜集数据,所以数据库的容量非常庞大,但 是,它的查询结果往往不够准确;分类目录依靠人工收集和整理网站,能够提供更 为准确的查询结果,但收集的内容却非常有限。 此外,基于这两类搜索引擎,还衍生了其他的搜索服务,主要有元搜索引擎 ( m e t as e a r c he n g i n e ) 和集成搜索引擎( a 1 卜i n o n es e a r c hp a g e ) 等。 搜索引擎既然没有明确的定义,一般就以其发展中一些里程碑式的应用标志其 阶段。大多数人普遍的共识是: 第一代搜索引擎:是依靠人工分拣的分类目录搜索,以“雅虎”为标志。 第二代搜索引擎:是依靠机器抓取,并建立在超级链接分析技术基础之上的 网页搜索,以“g o o g l e ”为代表,其信息量大、更新及时,但返回信息过多,可能 有很多无关信息。 第三代搜索引擎:是把“智能化”、“人机交互”等功能融入了主流。将自动 分类技术、中文内容分析技术及区域识别技术应用到大型搜索引擎中,除了在信息 检索速度、更新频率等基本技术指标方面处于领先地位外,它的网页相关检索、拼 音纠错、模糊查询、语音查询技术也具有很高的水准。此外,还同时兼备了新闻、 m p 3 、图片、f l a s h 搜索功能,已成为能够提供全面、综合的信息搜索服务。 1 2 本文的工作 本文的主要工作有以下几个部分: 1 在充分分析文本搜索的过程和l u c e n e 的基本架构基础上,做大量的搜索试 验,考证l u c e n e 的可用性。 2 在对l u c e n e 算法做了比较全面的调研后,实现一个基于n u t c h 的基本全网 抓取过程。其中抓取分为i n t e r n e t 抓取和w a p 抓取两部分。解决如何进行w a p 抓 取这一技术问题。 3 对实验结果做细致地分析,设计并开发一个可以实现对各个抓取后的对象进 行w m l 文本格式转换的类库。解决如何更好地对抓取结果进行转换的技术问题。提 出两种转换方法并进行比较。对搜索彩图,彩铃的技术进行比较详细地介绍。 4 在基本分析和技术过程完成之后,设计并开发一个可以实际通过w a p 网络访 问的无线搜索引擎,并提供相关的搜索服务。 5 分析未来w a p 搜索引擎的发展趋势,以及论文下一步的工作计划。 2 华北电力大学硕士学位论文 1 3 论文组织结构 本文的内容如下安排: 第一章介绍了本论文的工作背景和意义。 第二章综述了全文索引中倒排索引技术,分析了l u c e n e 的基本架构。通过实 验证明了l u c e n e 的搜索能力和应用价值,介绍了各个应用接口,并实现了基本的 全网抓取过程,包括对i n t e r n e t 和w a p 网络进行抓取的技术细节。 第三章针对抓取后得到的结果,对基本h t m l 、x m l 、w m l 语法的分析,设计了 一些可以在各个语言中进行转换的类库,将结果呈现在w a p 模拟器中,完成w a p 抓 取,详细阐述了对w a p 网络抓取的技术细节,并对针对该结果两点实际应用( 搜图、 搜铃) 的技术进行了详细地介绍。 第四章系统的开发与应用介绍了该论文设计的w a p 搜索引擎的框架结构及各模 块的功能,并简要说明了在该引擎的基础上开发的几个实际的应用实例。 第五章总结本文的工作成果,并对将来的工作进行了进一步的讨论。 3 华北电力大学硕十学位论文 第二章全文索引引擎l u c e n e 2 1l u c e n e 介绍和发展现状 l u c e n e 是a p a c h e 软件基金会j a k a r t a 项目组的一个子项目,是一个开放源代 码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索 引擎的架构,提供了完整的查询引擎和索引引擎及部分文本分析引擎( 英文与德文 两种西方语言) 。l u c e n e 的目的是为软件开发人员提供一个简单易用的工具包,方 便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引 擎。 l u c e n e 可以对任何的数据做索引和搜索。l u c e n e 不管数据源是什么格式,只 要它能被转化为文字的形式,就可以被l u c e n e 所分析利用。也就是说不管是w o r d 、 h t m l 、p d f 还是其他什么形式的文件只要可以从中抽取出文字形式的内容就可以被 l u c e n e 所用,就可以用l u c e n e 对它们进行索引以及搜索。 l u c e n e 的原作者是d o u gc u t t i n g ,他是一位资深全文索引检索专家,曾经是 v - t w i n 搜索引擎的主要开发者,后在e x c i t e 担任高级系统架构设计师,目前从事 于一些i n t e r n e t 底层架构的研究。一开始,d o u gc u t t i n g 将l u c e n e 发表在自己的 个人主页上,2 0 0 0 年3 月将其转移到了s o u r c e f o r g e 上,并于2 0 0 1 年1 0 捐献给 a p a c h e ,使l u c e n e 成为j a k a r t a 的一个子工程: h t t p :j a k a r t a a p a c h e o r g l u c e n e ” 已经有很多j a v a 项目都使用了l u c e n e 作为其后台的全文索引引擎,比较著名 的有; 1 j i v e :w e b 论坛系统。 2 e y e b r o w s :邮件列表h t m l 归档浏览查询系统,本文的主要参考文档 “t h e l u c e n es e a r c he n g i n e :p o w e r f u l ,f l e x i b l e , a n df r e e ”,作者就是 e y e b r o w s 系统的主要开发者之一,而e y e b r o w s 已经成为目前a p a c h e 项目的主要邮 件列表归档系统。 3 c o c o o n :基于x m l 的w e b 发布框架,全文检索部分使用了l u c e n e 。 4 e c l i p s e :基于j a v a 的开放开发平台,帮助部分的全文索引使用了l u c e n e 。 在所有这些案例中,开源应用占了很大一部分,但更多的还是商化业产品和网 站。毫不夸张地说,l u c e n e 的出现,极大地推动了全文检索技术在各个行业或领域 中的更深层次应用。 l u c e n e 作为一个全文检索引擎,具有如下突出的优点: 4 华北电力大学硕士学位论文 索引文件格式独立于应用平台。l u c e n e 定义了一套以8 位字节为基础的索 引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的 文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目 的。 优秀的面向对象的系统架构,使得对于l u c e n e 扩展的学习难度降低,方 便扩充新功能。 设计了独立于语言和文件格式的文本分析接口,索引器通过接受t o k e n 流完 成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获 得强大的查询能力,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 秉承了开放源代码一贯 的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以 在l u c e n e 的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到h t m l 、 p d f 等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于l u c e n e 恰 当合理地对系统设备做了程序上的抽象,扩展的功能也能轻易地达到跨平台的能 力。最后,转移到a p a c h e 软件基金会后,借助于a p a c h e 软件基金会的网络平台, 程序员可以方便地和开发者、其它程序员交流,促成资源的共享,甚至直接获得已 经编写完备的扩充功能。虽然l u c e n e 使用j a v a 语言写成,但是开放源代码社区的 程序员正在不懈地将之用各种传统语言实现,使得l u c e n e 能够运行在各种各样的 平台上,系统管理员可以根据当前平台适合的语言来合理的选择。 2 2 无线搜索的趋势 中国的无线互联网处于产品丰富的领先地位,而无线搜索的盈利模式正处于初 始酝酿阶段。其表现在以下几个方面: 1 w a p 给每一个用户的诸多好处:更加便宜,更加简单,更加方便,易学的 上网操作,随时随地得到自己需要的资讯,是一个流动的资料库。 2 w a p 是一个全新的无线互联网市场,一个全新的信息资源中心,个人手机拥 有量逐步增加,手机终端市场的逐步成熟造就了一个更加便捷的宣传渠道。只要准 s 华北电力大学硕十学位论文 确地选取互联网咨询和移动用户需求之自j 最恰当的结合点,不但可以避开互联网激 烈的竞争,更给商家带来了无限的商机。 3 服务提供商( s p ) 有其思维局限性。利用手机用户成熟的消费心理,在图铃方 面大力投入。服务内容和服务理念都是围绕收费这一方向的。 4 w a p 技术已经成熟。w a p 发展迅猛,信息量急剧增加。搜索有其存在的必 然趋势。 另外,在w a p 的海量资源引领下,免费w a p 潮流得到飞速的发展。 中国移动重点推广的w a p 业务在2 0 0 5 2 0 0 6 年得到飞速的发展,乐观发展的 过程中也伴随着弊病的产生,越来越多的s p 蜂拥而至,使得w a p 市场一片混乱, s p 的不规则发展已经严重影响了w a p 基本经济运行轨道。资深的w a p 服务商也 无法预测收费的盈利模式还会存在多久。2 0 0 4 年,一些具有发展眼光的w a p 服务 商早已发现w a p 唯一的出路就是免费”1 。 搜索引擎无疑是对免费w a p 的最佳诠释,2 0 0 5 年陆续涌现的大量小型的免 费w a p 站点后,在2 0 0 6 年g o o g l e 、b a i d u 等大型传统的互联网领先企业也把其目 光转移到免费的w a p 趋势中来。国内其他各大搜索引擎公司都把跟光逐渐转换到 中文无线搜索领域,寻求与未来发展伙伴的合作。百度宣布同诺基亚结盟,索尼爱 立信同g o o g l e 把g o o g l c 的博客搜索与网站搜索整合到手机当中,摩托罗拉也与 g o o g l e 结成伙伴关系。这都预示着w a p 搜索的发展对于w a p 发展有着极其深刻 的意义。微软也认为“手机搜索具有战略重要性”“。 艾瑞市场咨询2 0 0 5 年对手机无线搜索做出一份报告称,2 0 0 5 年中国无线搜索 市场用户规模为1 0 3 0 万,收入规模为0 2 6 亿元。该报告预计2 0 0 6 年中国无线搜 索用户规模为3 4 0 0 万,比2 0 0 5 年增长2 3 0 ,收入规模将达到1 9 6 亿元,比2 0 0 5 年增长6 5 4 “1 。实际上,百度的想法还超越了以手机为终端的网络载体,“我们 希望在3 c 融合的时代,能够将不同的信息通过百度连接起来,并且提供不同的搜 索服务。”由手机到信息家电是一个显示屏幕不断变大的过程,那么服务和功能也 将有所不同,但是百度希望能够在所有的载体上实现使用百度的搜索,“这会是今 后一个百度发展的关键领域”1 。” 表2 - 1 通过分析几个市场上常见的搜索引擎来介绍无线w a p 搜索的发展状况。 6 华北电力大学硕士学位论文 表2 - 1 常见w a p 搜索引擎对比 性能 s o s o w a p g o o g l e百度 进入市场时间 2 0 0 5 盆 2 0 0 5 笠2 0 0 5 年 是否开始推广 否否 是否免费 对中文支持良好 易于使用,架构合理 转换准确 搜索内容丰富 支持多种浏览器 搜索速度反应 服务内容多样化 专注于w a p 搜索 搜图搜铃等领先技术 有独特的盈利模式 4 - 是否与手机捆绑 更加灵活与客户合作 有明确的发展方向 市场上还存在其他一些搜索引擎产品,也有其缺点和局限性。主要表现在: 进入市场较晚 内容泛滥让用户无从入手 搜索引擎内容不丰富不准确无法满足用户需求 盈利思想的局限性 产品的不专一 技术落后 2 3 全文检索与全文检索系统 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一 个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事 先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于 通过字典中的检索字表查字的过程。 全文检索的方法主要分为按字检索和按词检索两种。 7 华北电力大学硕十学位论文 按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组 合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合而 为一的,而中文中字与词有很大区别。 按词检索指对文章中的词,即语义单位建立索引,检索时按词检索,并且可以 处理同义项等。英文等西方文字由于按照空白切分词,因此实现上与按字处理类似, 添加同义处理也很容易。中文文字则需要切分字词,以达到按词索引的目的,关于 这方面的问题,是当前全文检索技术尤其是中文全文检索技术中的难点,在此不做 详述。 全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件 系统。一般来说,全文检索需要具备建立索引和提供查询的基本功能,此外现代的 全文检索系统还需要具有方便的用户接口、面向w w w 的开发接口、二次应用开发接 口等州。 功能上,全文检索系统具有建立索引、处理查询返回结果集、增加索引、优化 索引结构等功能,外围则由各种不同应用具有的功能组成。结构上,全文检索系统 具有索引引擎、查询引擎、文本分析引擎、对外接口等,加上各种外围应用系统共 同构成了全文检索系统。图2 - 1 介绍了全文检索系统的结构与功能。 1 : 2 4 倒排索弓 图2 - 1 全文检索系统的结构与功能 倒排索引是一种面向单词的索引机制,利用它可以提高检索时的速度。通常情 况下,倒排索引结构由“词典”和“出现情况”两部分组成。对于每一个单词,都 8 华北电力大学硕士学位论文 会有一个词汇列表记录单词在所有文档中出现的位置,这些位置可以是单词的位置 ( 文本中的第几个单词) 也可以是字符的位置( 文本中的第几个字符) 。 如果使用正常的索引结构,建立的是“文档到单词”的映射关系,在使用倒排 索引技术后,建立的是“单词到文档”的映射关系”3 : 假设现在有两篇文档:文档a 和文档b 。文档a 的内容是:ia mas t u d e n t 。 文档b 的内容是:ia mas t u d e n tm a j o ri nc o m p u t e rs c i e n c e 。 如果建立的是一般的索引结构,那么会有如表2 2 所示的关系。 表2 - 2 一般的索引格式示例 文档编号出现单词 出现次数 as t u d e n t1 bs t u d e n t1 m a j o r l c o m p u t e r 1 从表2 2 中可以看出,一般的索引结构是以文档为标准建立索引结构的,即它 记录的是一篇文档中所有单词出现的情况。比如在文档b 中s t u d e n t 、m a j o r 、 c o m p u t e r 均出现了一次。然而,用户在进行检索时,都是输入关键字进行查询,如 果使用这种索引结构,在查询某一关键字时往往需要遍历所有的索引,当索引量非 常大时,效率会成为一个很大的问题。 倒排索引恰恰解决了这个问题,它是以关键字为标准建立索引的。 从表2 - 3 可以看出,倒排索引是以单词为标准建立的索引结构,它描述了一个 单词在所有文档中的出现情况,比如说单词“s t u d e n t ”在文档a 和文档b 中分别 出现了一次,而单词“m a j o r ”只在文档b 中出现了一次。 表2 - 3 倒排索引结构示例表 单词出现的文档出现次数 s t u d e n t a 。b1 ,1 m a j o r b1 c o m p u t e r bl 通过比较可以发现,一般的索引结构建立的是一种“文档到单词”的映射关系, 而倒排索引建立的则是一种“单词到文档”的映射关系。因为在日常的检索中,通 常都是按照关键字进行搜索的,所以,倒排索引可以更好地适合这种检索机制的需 要。这也是倒排索引如今被大规模使用的原因阳1 。 9 华北电力大学硕士学位论文 2 5l u c e n e 架构 l u c e n e 定义了几个重要的名词,各个结构之间的关系可由图2 2 表示。 d o c u m e n t :一个需要进行索引的“单元”,一个d o c u m e n t 由多个字段组成: f i e l d :字段; h i t s :查询结果集,由匹配的d o c u m e n t 组成。 譬型 i。d。ocum。e。n。t(fie。l。d,1,,矗fie。l。d:2。) s e a r c h e r 图2 - 2l u c e n e 处理过程和格式转换 l u c e n e 对于外部应用来说索引模块( i n d e x ) 和检索模块( s e a r c h ) 是主要的外部 应用入口“”。l u c e n e 各个主要类包的功能如表2 4 所示。 表2 - 4l u c e n e 类包结构和功能 o r g a p a c h e l u c e n e s e a r c h 搜索入口 o r g a p a c h e l u c e n e i n d e x 索引入口 o r g a p a c h e l u c e n e a n a l y s i s 语苦分析器 o r g a p a c h e l 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 l u c e n e d o c u m e n t 存储结构 o r g a p a c h e l u c e n e s t o r e 底层1 0 存储结构 o r g a p a c h e l u c e n e u t i1 一些公用的数据结构 1 0 卜一 华北电力大学硕士学位论文 索引过程:从命令行读取文件名( 多个) ,将文件分路径( p a t h 字段) 和内容( b o d y 字段) 2 个字段进行存储,并对内容进行全文索引:索引的单位是d o c u m e n t 对象, 每个d o c u m e n t 对象包含多个字段f i e l d 对象,针对不同的字段属性和数据输出的 需求,对字段还可以选择不同的索引存储字段规则,列表2 5 如下。 表2 5 索引过程规则 方法切词索引 存储 用途 f i e l d t e x t ( s t r i n gn a m e 。s t r i n gv a l u e ) y e sy e sy e s切分词索引并存储,比如: 标题,内容字段 f i e l d t e x t ( s t r i n gn a m e ,r e a d e rv a l u e ) y e sy e sn o 切分词索引不存储,比如: - l e r a 信息, 不用于返回显示,但需要进 行检索内容 f i e l d k e y w o r d ( s t r i n gn b m e ,s t r i n gv a l u e ) n oy e sy e s不切分索引并存储,比如: 日期字段 f i e l d u n i n d e x e d ( s t r i n gn a m e ,s t r i n gv a l u e ) n on oy e s 不索引,只存储,比如:文 件路径 f i e l d u n s t o r e d ( s t r i n gn a m e ,s t r i n gv a l u e ) y e sy e sn o只全文索引,不存储 可以通过图2 3 来简单的表示,在l u c e n e 中文件类型的转换过程: 2 6l u c e n e 搜索能力分析 图2 - 3 文件类型转换 性能对于个搜索引擎来说是至关重要的,在继续完成论文之前,一定要对 l u c e n e 的搜索能力进行全面的测试,如果一个搜索引擎从性能上无法满足用户的需 要,那么它的生存期也不会长久。 本部分通过对大量文档进行检索来测试l u c e n e 的性能。 华北电力大学硕十学位论文 2 6 1 建立索引的速度 通过对l u c e n e 搜索能力的分析,可以发现l u c e n e 是通过内存索引完成索引过 程的,当内存中积累的文档达到一定数量的时候,就自动刷新内存,刷新内存的过 程通过一个叫做r e f r e s h r a m 的方法实现1 。在刷新后将其写入文件系统,这样的 做法目的是减少读写磁盘( i o 操作) 的次数。在索引的过程中,l u c e n e 有一个内 存中最大文档的限制,该值是一个私有变量,名字叫做r a m m a x f i l e s ,默认值为6 4 , 在测试的过程中,尝试着更改此值的大小,以观察索引建立的时间变化。 测试的硬件条件为:c p ux e o n3 o o g b ,内存2 o o g ,硬盘8 0 g ,转速7 2 0 0 转。 测试的对象为古今中外的小说的介绍信息,总的大小约在l o o m 左右。每一个 文本文档大小在i o k b 左右,还有一些不同格式的文件,如图片,网页等。大约有 7 0 0 0 左右各文件。测试的结构如图2 - 4 。 图2 - 4 测试l u c e n e 性能 图2 - 5 是在索引建立过程中,通过w i n d o w s 任务管理器,可以看到c p u 的占用 率呈现波浪型。当c p u 占用率较高时,就是系统正在进行分词和向内存中添加文档, 当占用率较低时,系统正将内存中的文档写入磁盘。 华北电力大学硕士学位论文 图2 5c p i j 占用率情况 在对实验数据的分析过后,可以得到以下结论: 在索引过程中,d e f a u l t m a x d o c s i n r a m = 6 4 ,改变其值,搜索效率会有峰值 变化。文件i o 操作频繁,索引速度会很慢。改变i n d e x w r i t e r 中m e r g e f a c t o r 参 数;缺省i n d e x e r 是每2 0 条记录索引后写入一次,每将m e r g e _ f a c t o r 增加5 0 倍, 索引速度可以提高1 倍左右。l u c e n e 还提供其他参数:椰a x m e r g e d o c s 和f s w i r t e r 等等,均可以通过改变值来调整性能。更改后的时间较为稳定。 2 6 2 搜索优化和所提供接口 在搜索过程优化中,l u c e n e 面向全文检索的优化在于只将所有结果中匹配度最 高的头1 0 0 条结果( t o p d o c s ) 的i d 放到结果集缓存中并返回,所以即使检索匹配 总数很多,l u c e n e 的结果集占用的内存空间也不会很多 1 2 1o 同样l u c e n e 在每次检 索增大缓存,在收集结果的过程中将匹配度低的结果自动过滤,并提供了几个有用 的接口。 优化前n 条质量的接口在搜索产品的使用过程中,用户真正感兴趣的是前n 条的质量,在其后的搜索结果用户往往不去过问,在手机的搜索过程中,由于屏幕 大小的限制,前n 条的质量更是开发者需要关心的。 排序接口l u c e n e 提供相应的打分器给搜索结果进行打分排序,在搜索产品 推向市场的过程中,对搜索结果的显示成为拿到市场利润的关键。例如百度的竞价 排名。 l u c e n e 本身的s t a n d a r d a n a l y z e r 提供了中文分词接口,不过其采用的为 卜g r a m 。这种分词方法虽然不会损失任何索引信息,但是造成的索引垃圾太多,用 户得到的查询结果中垃圾也是很多。天津大学在这方面有比较深入的研究,在此基 华北电力大学硕十学位论文 础上进行改变的代码应该可以完成中文分词的需要“”。以下代码是在本文对l u c e n e 测试包中添加的c h j n e s e a n l y z e r 中文分词类部分核心代码。在中文分词方面使用 j n i 调用i c t c l a s ( 中国科学院,算法为隐马尔可夫模型) 的j a v a 接口。所以其在中 文方面性能上同与i c t c l a s ;其在英文分词上采用了l u c e n e 的s t o p a n a l y z e r ,可 以去除s t o p w o r d s ,而且可以不区分大小写,过滤掉各类标点符号,完全兼容l u c e n e 的底层分词格式。其中关键代码实现如下: i m p o r tj a v a i o i o e x c e p t i o n f i m p o r tj a v a i o r e a d e r ; i m p o r tj a v a i o s t r i n g r e a d e r ; i m p o r tj a v a u t i l s e t ; i m p o r t i m p o r t i m p o r t i m p o r t o r g a p a c h e 1 u c e n a a n a l y s i s a n a l y z e r ; o r g a p a c h e 1 u c s n a a n a l y s i s l o w a r c a s e t o k e u l z e r ; o r g a p a c h e 1 u c a n e a n a l y s i s s t o p p i l t e r ; o r g a p a c h e 1 u c a n e a n a l y s l e t o k e n s t r e a m ; i * a u t h o r :l l s l d a p u b l i cf i n a lc l a s sc h l n e s e a n a l y z e re x t e n d sa n a l y z e r p r i v a t es e ts t o p w o r d s ; ,a na r r a yc o n t a i n i n g8 0 m ec o m m o ne n g l i s hw o r d st h a ta e an o tu s u a l l yu s e f u l f o rs e a r c h i n g 可以在此扩展e n g l i s hs t o pw o r d s 和c h i n e s es t o pw o r d s p u b l i cs t a t i cf i n a ls t r i n g l 】e n g l i s h _ s t o pw o r d s ( 。a 。,。a n 。,。a n d 。a r e 。a 亭。,a t 。b e ,。b u t 。b y 。, 。f o r ,。i f 。i n 。i n t o 。i s 。,。i t 。 。n o 。,。n o t 。,。o f 。-。o n 。o r 。,。b 。s u c h 。j 。t 。,。t h a t 。,t h e 。,t h e i r 。,t h e n 。,。t h e r e 。t h e s e 。, 。t h e y 。t h i s 。,。t o 。,。w a s 。,。w i l l 。w i t h 。, - 我- ,一我们- ) ; b u i l d sa na n a l y z e rw h i c he e j 阻o v e sw o r d si ne n g l i s 弛j t o p _ w o r d s | p u b l i cc h i n e s e a n a l y z e r ( ) ( s t o p w o r d s 。s t o p f i l t e r m a k e s t o p s e t ( e n g l i s h _ s t o p _ w o r d s ) : ) | b u i l d s 孤a n a l y z e rw h i c hr e m o v e sw o r d si nt h ep r o v i d e da r r a y | p u b l i cc h l n e s e a n a l y z e r fs t r i n g | 】s t o p w o r d s ,( t h i s s t o p w o r d s = s t o p f i l t e r m a k e s t o p s e t s t o p w o r d s ; 】 1 4 华北电力大学硕士学位论文 f i l t e r sl o w e r c a s e t o k e n i z e rw i t hs t o p f i l t e r p u b l i ct o k e n s t r e a mt o k e n s t r e a m ( s t r i n gf i e l d n a m e ,r e a d e rr e a d e r w m l w m l ( w i r e l e s sm a r k u pl a n g u a g e ) l a n g u a g e ) ,是应用于例如p d a ( p e r s o n a l 语言继承子x m l ( e x t e n s i b l em a r k u p d i g i t a la s s i s t a n t s ) 这样的移动存储终 端的。w m l 相对于w a p 类似于h t m l 相对于h t t p ,h t m l 拥有超过1 2 0 个t a g ,但为 了应用于w a p ( w i r e l e s sa p p l i c a t i o np r o t o c 0 1 ) w m l 严格继承了其中的3 5 个。 h t m l 与w m l 之间的区别: 1 h t m l 拥有相对于w m l 更为复杂的嵌套结构,w m l 不支持复杂的嵌套结构。 2 h t m l 不能应用于p d a s ( 这一情况在这篇论文完成过程中正在改变,越来越多 的厂家把注意力集中到对h t m l 识别的开发上) 。 3 h t m l 不是必须遵守良好的格式,意味着t a g 可以没有关闭的呼应。 4 h t m l 具有非常广泛的兼容性。 硬件上的发展沿革限制了可被接受和显示的语言“”。 h t m l 与w m l 页面分析 w m l 语言是在w a p 协议中定义的一种适合在无线环境下使用的标记语言,它采 用的是一种d e c k c a r d 的方式,其结构主要由两个部分组成: ( 1 ) 包含w m l 版本信息的一行文字。这在w m l 文档中是可选出现的。 ( 2 ) 包含文档实际内容的文档实体。这部分由对 所界定。在这 个标记对之间,是一个或多个由标记对 所界定部分“”。 除了可有可无的版本文字说明,w m l 文档与h t m l 文档在结构上差异并不大。在 w m l 文档中由标记对 括起来的文挡实体部分称为一个d e c k ,它与h t m l 文档中由 括起来的文档实体部分相对应。差异的地方在于w m l 文档 中包括了很多由标记对 括起来的部分,这在w m l 中称为一个c a r d , 它是在手机等无线终端屏幕上显示的单位,一个c a r d 就是一屏,而h t m l 文档中则 华北电力大学硕士学位论文 没有这种现象。因此,在结构上w m l 文档比h t m l 文档多一个层次。 3 1 1 第一种转换方法 从h t m l 文档到w m l 文档的转换过程中存在的问题可以划分为两大类,一是与 内容相关的问题,如具体语法成分的处理和转换;二是与结构相关的问题,如 d e c k - c a r d 的合理划分问题。 这两类问题可以看成处理问题的两个阶段,前一个阶段负责处理内容的转换, 侧重于局部的处理,而后一个阶段则侧重于整体结构的处理。因此,对于h t m l 文 档的处理可以分为两次遍历来做。 ( 1 ) 在第一次遍历中,主要处理

温馨提示

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

评论

0/150

提交评论