版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2014级北航软件管理与测试专业第三组大数据报告基于lucence的信息检索系统设计与实现1. 系统介绍信息检索系统是利用信息检索技术(如全文检索等)帮助用户查找特定信息的一种工具。它能够对信息进行正确的表示、存储和组织,同时还提供对于信息的访问方式。在这里,信息的概念很宽泛,它可以是一篇文章,一段文本,一个网页,一封邮件,一张照片,甚至是一些虚拟信息的集合。2. 系统平台设计本系统采用的是IDEA13 + MySQL5.1 + Tomcat5.5的开发环境。此外,本系统所应用到的其它开源工具为:spring MVC, Mybatis,网络爬虫Heritrix1.14.3,网页解析工具Html
2、Parser2.0,全文检索工具包Lucene3.0,中文分词软件IKAnalyzer3.0。3. 系统的组成结构整个系统由三个部分组成:网页采集分析模块、索引与数据库模块、web搜索界面模块。其中网页采集与分析分别由开源工具网络爬虫Heritrix和网页解析器HtmlParser完成;由Lucene完成索引系统,并将索引与数据库关联;web查询界面基于SSH框架设计完成。模块组成结构如图3.1所示。图3.1 系统模块结构图4. 网页抓取分析模块设计4.1. 站点选择从技术角度看,选择网站的主要依据有:(1) 网站能够被Heritrix爬虫抓取。因为有的网站使用了反爬虫技术,防止未经授权的爬虫
3、对面页进行抓取。(2) 网站的信息不是用javaScript动态生成的。这种动态生成的内容需要在浏览器中运行生成,是爬虫无法获取到的。(3) 网站的面页结构不应该经常变化,最好是使用一种模版动态生成的。这样有利于在分析面页时,使用较为简单的方式从网页中解析数据。除了上述3点技术方面的因素,在选择网站时,也应当尽量选择那些访问量较大、产品信息比较齐全的网站。这样,有利于数据完整性。基于上述各因素的考虑, 4.2. 网页解析工具HtmlParser对于抓取到的网页,需要经过解析,提取出需要的信息以便更好的建立索引和创建数据库。本文Html解析器是HtmlParser,HtmlParser是一个开源
4、的Java库,它提供接口,支持线程和嵌套的解析Html文本。HtmlParser提供了两种访问Html结点的方法:Visitor模式和Filter模式,本文采用了Filter模式。Filter模式通过设置一定的过滤条件,对每个结点进行过滤,返回一个符合规则的节点列表。Org.htmlparser.filters包含所有已经实现的Filter类型,定义了16种Filter。5. 数据库设计5.1. 数据库设计本文数据库结构简单,只有一个数据表来存储笔记本产品的各种信息,数据库各字段含义如表5.1所示。表5.1 数据库字段含义字段名字段含义Id主键name名称type类型content内容abst
5、ract详细参数的摘要,供建立索引时使用创建数据库的SQL语句如下:create database searchdb;use searchdb;create table product ( id int AUTO_INCREMENT, name varchar(512), type varchar(512), content text, abstract varchar(512),);6. 索引设计检索的整个过程包括:构建文本库,建立索引,进行检索。6.1.1. 构建文本库在开发检索功能前,一个信息检索系统需要做些准备工作。首先,必须构建一个文本数据库。这个文本数据库用来保存所有用户可能检索的
6、信息。在这些信息的基础上,确定检索系统中的文本模型。文本模型是被系统所认可的一种信息格式,这种格式应当具有可识别、冗余度低等特点。当然,在系统的运作过程中,文本数据库的信息可能会不断地发生变化。6.1.2. 建立索引有了文本模型后,就应该根据数据库内的文本建立索引。索引可以大大提高信息检索的速度。目前有多种索引的建立方式,采用哪种方式取决于信息检索系统的规模。大型信息检索系统(如百度、Google这样的搜索引擎)均采用倒排的方式来建立索引。6.1.3. 进行搜索在为文本建立索引之后,就可以开始对其进行搜索。通常由用户提交一个检索请求,该请求被分析,然后在索引中检索并返回结果。7. Lucene
7、介绍Lucene是一个开源全文检索工具包,它是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。7.1.1. Lucene结构分析Lucene作为一个优秀的全文检索引擎,其结构具有强烈的面向对象特征。首先是定义了一个与平台无关的索引文件格式,其次通过抽象将其核心组成部分设计为抽
8、象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终达成了一个低耦合高效率,容易二次开发的检索引擎。Lucene的结构和源码组织结构如图3.1所示:图3.1 Lucene结构和源码组织结构从图中可以看出,Lucene由基础结构封装、索引核心、对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。Lucene的将所有源码分为了7个模块(在java语言中以包即package来表示),各个模块所属的部分也如图3.1所示。7.1.2. Lucene索引的建立索引是信息检索引擎工作的第一步,只有建立了索引才能进行信息检
9、索。Lucene用Document逻辑文件和Field域来组织各种数据源。Document向Lucene提供原始的要索引的文本内容,Lucene从Document中取出相关的数据源,并根据属性配置进行相应的处理,建立索引。索引过程如下:(1) 创建一个IndexWriter用来写索引文件,它有几个参数,INDEX_DIR就是索引文件所存放的位置,Analyzer便是用来对文档进行词法分析和语言处理的。(2) 创建一个Document代表我们要索引的文档。(3) 将不同的Field加入到文档中。我们知道,一篇文档有多种信息,如题目,作者,修改时间,内容等,不同类型的信息用不同的Field来表示。
10、(4) IndexWriter调用函数addDocument将索引写到索引文件夹中。7.1.3. Lucene的搜索Lucene建立了功能强大的索引机制为搜索服务,这是因为在检索系统的使用中,用户体验最深的还是搜索部分。如果这一部分的性能无法达到用户要求,那么软件就没有太大的意义。搜索过程如下:(1) IndexReader将磁盘上的索引信息读入到内存,INDEX_DIR就是索引文件存放的位置。(2) 创建IndexSearcher准备进行搜索。(3) 创建Analyer用来对查询语句进行词法分析和语言处理。(4) 创建QueryParser用来对查询语句进行语法分析。(5) QueryPar
11、ser调用parser进行语法分析,形成查询语法树,放到Query中。(6) IndexSearcher调用search对查询语法树Query进行搜索,得到查询结果存放在TopScoreDocCollector。8. 中文分词中文分词是处理中文信息的基础与关键。由于Lucene自带的分词器对英文的分词效果较好,但对中文的分词效果并不如意。为了使检索系统能更好的处理中文信息,本文采用了IKAnalyzer作为分词器。IK Analyzer是一个开源的,基于java 语言开发的轻量级的中文分词工具包。从2006年12月推出1.0 版开始, IKAnalyzer已经推出了3个大版本。最初,它是以开源
12、项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer 3.X 则发展为面向Java 的公用分词组件,独立于Lucene 项目,同时提供了对Lucene 的默认优化实现。IKAnalyzer的特性:l 采用了特有的“正向迭代最细粒度切分算法“,具有60 万字/秒的高速处理能力。l 采用了多子处理器分析模式,支持:英文字母(IP 地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。l 优化的词典存储,更小的内存占用。支持用户词典扩展定义l 针对Lucene 全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化查询关键字的搜索排列组合,能极大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招聘精英人才流动管理专家面试全攻略及答案解析
- 2025年北京大学第三医院秦皇岛医院第二批公开招聘工作人13名笔试考试参考试题及答案解析
- 酒店总经理选拔面试题及解答思路
- 企业生产车间管理专员绩效考核法
- 2025年滨州渤中能源有限公司公开招聘工作人员笔试考试参考试题及答案解析
- 2025广东广州医科大学附属第五医院人才招聘3人(十)笔试考试参考试题及答案解析
- 2025年高职(工业机器人技术)机器人故障诊断试题及答案
- 2025年中职文化创意与策划(视觉设计基础)试题及答案
- 2025年大学药物分析(药物分析技术)试题及答案
- 2025青海西宁市艺术实验中学招聘2人笔试考试参考试题及答案解析
- 创业人生(上海大学)【超星尔雅学习通】章节答案
- 开放系统10862人文英语(4)期末机考真题及答案
- GB/T 4957-2003非磁性基体金属上非导电覆盖层覆盖层厚度测量涡流法
- GB/T 27806-2011环氧沥青防腐涂料
- GB/T 12618.1-2006开口型平圆头抽芯铆钉10、11级
- FZ/T 52051-2018低熔点聚酯(LMPET)/聚酯(PET)复合短纤维
- 设备吊装方案编制受力计算
- 食品工程原理概述经典课件
- 养老院机构组织架构图
- 财经法规与会计职业道德
- 《中国传统文化心理学》课件第五章 传统文化与心理治疗(修)
评论
0/150
提交评论