全文检索及其在公文处理系统中的应用(3)
面对已经存在的商业全文检索引擎,LUCENE也具有相当的优势。首先,它的开发源代码发行方式(遵守Apache Software License),在此基础上程序员不仅仅可以充分的利用LUCENE所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面向对象编程的实践,进而在此基础上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及LUCENE。其次,LUCENE秉承了开放源代码一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在LUCENE的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到HTML、PDF等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于LUCENE恰当合理的对系统设备做了程序上的抽象,扩展的功能也能轻易的达到跨平台的能力。最后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写完备的扩充功能。最后,虽然LUCENE使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework),在遵守LUCENE索引文件格式的基础上,使得LUCENE能够运行在各种各样的平台上,系统管理员可以根据当前的平台适合的语言来合理的选择[2]。
2.5互联网搜索引擎的研究
当今的搜索引擎大多采用集中式的搜索方式。搜索引擎结构大致分为:搜索器、索引器和检索器等几部分组成。搜索器就是人们所说的网络蜘蛛(Web Spider)或者叫网络
论文示例
机器人。通过这种Spider程序,可以从一个网页出发,通过提取其中的URL,在遵从Robot Exclusion协议的前提下,不断地提取得到的URL,并且下载本URL的资源;而索引器的主要工作则是利用下载的网络资源,提取索引项,用于生成文档库的索引表;检索器主要是通过理解用户的查询需求,在文档库中检索出文档并且进行快速匹配,然后进行相关性排序,通过链接网页提供给用户检索结果。至此,完成搜索。
这样就可以知道:只要LUCENE+”蜘蛛爬虫”+”网页相关度排名”,就可以成为一个真正意义上的搜索引擎,事实上LUCENE的创始人Doug Cutting已经开发了一个叫做”Nutch”的搜索引擎系统了,这个系统加上了“蜘蛛程序”可以对整个Internet的网页进行搜索,Nutch具体的逻辑关系图如下:
图2.1 Nutch逻辑关系图
真正的搜索引擎在搜索的时候就是和LUCENE采用一样的原理:在Index中遍历所有的Segments目录。而且一般中文分词也都是采用LUCENE的中文分词方法[8]。
2.6中文分词的简单介绍
切词[4]对于搜索结果来说是十分重要的环节,对于英文,只用关注空格即可实现切词,而对于中文,由于中文词汇非常丰富,词语的组成十分不固定,所以中文切词就变
论文示例
得比较困难。现在比较普遍的是中文单字切词、双字切词、字典切词,对于单字切词由于其一开始的不准确性就被很多人放弃,最准确的切词方法应该是字典切词,匹配方法大致有前向匹配、后向匹配和基于统计的匹配。举例来说,对于“中华人民”这句话,单字切词就是把这四个字一个作为一个词索引,搜索的时候逐字匹配,而双字索引是把这句话依次按两个字加以区分,分为“中华”,“华人”,“人民”这样切词。字典切词则是相对于词库来寻找哪个应该作为词,而哪个不是,由此也可以知道,字典切词是比较准确的,但是由于汉语词语的不断变化和扩充性,所以现在还要结合双字切词才可以更好地提高准确度。由于字典切词和双字切词的配合使用,搜索的匹配精度在很大程度上是可以得到保证的,LUCENE的切词方法,通过程序集LUCENE.Analysis来实现。
论文示例
3.LUCENE系统结构
3.1 LUCENE系统结构组织
LUCENE作为一个优秀的全文检索引擎[3],其系统结构具有强烈的面向对象特征。首先是定义了一个与平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终达成了一个低耦合高效率,容易二次开发的检索引擎系统。
以下将讨论LUCENE系统的结构组织,并给出系统结构与源码组织图如图3.1:
图3.1 系统结构与源码组织结构图
3.2 数据流分析
理解LUCENE系统结构的另一个方式是去探讨其中数据流的走向,并以此摸清楚LUCENE系统内部的调用时序。在此基础上,我们能够更加深入的理解LUCENE的系统结构组织,以方便以后在LUCENE系统上的开发工作。这部分的分析,是深入LUCENE系统的钥匙,也是进行重写的基础。
LUCENE系统中的主要的数据流以及它们之间的关系图如图3.2:
论文示例
图3.2 数据流图
图3.2很好的表明了LUCENE在内部的数据流组织情况,并且沿着数据流的方向我们也可以对与LUCENE内部的执行时序有一个清楚的了解。现在将图中的涉及到的流的类型与各个逻辑对应系统的相关部分的关系说明一下。
图中共存在4种数据流,分别是文本流、token流、字节流与查询语句对象流。文本流表示了对于索引目标和交互控制的抽象,即用文本流表示了将要索引的文件,用文本流向用户输出信息;在实际的实现中,LUCENE中的文本流采用了UCS-2作为编码,以达到适应多种语言文字的处理的目的。Token流是LUCENE内部所使用的概念,是对传统文字中的词的概念的抽象,也是LUCENE在建立索引时直接处理的最小单位;简单的讲Token就是一个词和所在域值的组合,后面在叙述文件格式时也将继续涉及到token,这里不详细展开。字节流则是对文件抽象的直接操作的体现,通过固定长度的字节(LUCENE定义为8比特位长,后面文件格式将详细叙述)流的处理,将文件操作解脱出来,也做到了与平台文件系统的无关性。查询语句对象流则是仅仅在查询语句解析时用到的概念,它对查询语句抽象,通过类的继承结构反映查询语句的结构,将之传送到查找逻辑来进行查找的操作。
论文示例
图中的涉及到了多种逻辑,基本上直接对应于系统某一模块,但是也有跨模块调用的问题发生,这是因为LUCENE的重用程度非常好,因此很多实现直接调用了以前的工作成果,这在某种程度上其实是加强了模块耦合性,但是也是为了避免系统的过于庞大和不必要的重复设计的一种折衷体现。词法分析逻辑对应于org.apache.LUCENE.analysis部分。查询语句语法分析逻辑对应于org.apache.LUCENE.queryParser部分,并且调用了org.apache.LUCENE.analysis的代码。查询结束之后向评分排序逻辑输出token流,继而由评分排序逻辑处理之后给出文本流的结果,这一部分的实现也包含在了org.apache.LUCENE.search中。索引构建逻辑对应于org.apache.LUCENE.index部分。索引查找逻辑则主要是org.apache.LUCENE.search,但是也大量的使用了org.apache.LUCENE.index部分的代码和接口定义。存储抽象对应于org.apache.LUCENE.store [5]。
3.3 LUCENE索引文件格式分析
3.3.1 LUCENE源码实现分析的说明
通过以上对LUCENE系统结构的分析,我们已经大致的清楚了LUCENE系统的组成,以及在LUCENE系统之上的开发步骤。接下来,我们试图来分析LUCENE项目(采用LUCENE 1.2版本)的源码实现,考察其实现的细节。这不仅仅是我们尝试用C++语言重新实现LUCENE的必须工作,也是进 …… 此处隐藏:2656字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




