文档详情

基于Lucene的全文搜索引擎设计--毕业设计.doc

发布:2017-11-25约2.42万字共50页下载文档
文本预览下载声明
毕 业 设 计 基于Lucene的全文搜索引擎设计 学生承诺书 本人郑重承诺:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 ???????????????????????????????????????????????作者签名: 年? 月? 日 摘 要 Web搜索引擎技术是当今网络信息处理领域的一个热点和难点。Web可以看作是一个庞大的分布式网络数据库,对于这样一个信息量飞速增长的数据库,如果人工地去检索和分类将是一项非常巨大的工程,搜索引擎技术1 前言 1 1.1 研究目的和意义 1 1.2 课题研究的背景 2 1.3 国内外研究概况 2 2 相关理论知识 3 2.1 Web爬虫Heritrix介绍 3 2.2 Ajax(Asynchronous JavaScript and XML)技术 3 2.3 Struts介绍 4 2.4 Hibernate介绍 6 2.5 Spring介绍 7 2.6 分词技术 8 3 概要设计 9 3.1 系统模块图 9 3.2 网页爬虫模块 9 3.2.1 Heritrix的体系结构图 10 3.2.2 架构分析 10 3.3 网页分析与提取模块 11 3.4 索引建立模块 12 3.5 Web搜索模块 14 4 详细设计 15 4.1 Web爬虫的配置和扩展 15 4.2 网页的分析与数据提取 16 4.3 索引的建立与数据库设计 20 4.3.1 实体对象设计 21 4.3.2 将数据文件转化为对象 22 4.3.3 将对象持久化到数据库 23 4.3.4 建立索引 24 4.4 Web系统模块和搜索模块设计 26 4.4.1 搜索模块设计 27 4.4.2 Web系统模块设计 28 5 用户手册以及测试结果 29 5.1 系统运行准备 29 5.2 使用Heritrix抓取网页 29 5.3 网页数据提取 34 5.4 建立索引和初始化数据库 35 5.5 搜索 36 6 总结 39 6.1 系统存在的问题 39 6.2 开发过程出现的问题 40 6.3 心得体会 40 致 谢 42 参 考 文 献 43 Abstract 44 仲恺农业技术学院毕业论文(设计)成绩评定表 45 1 前言 1.1 研究目的和意义 在构建一个信息类 Web 站点的时候,站点的全文搜索功能是必备的功能之一。一般站点的信息内容都存储在各种数据库系统中,并使用数据库提供的检索和查询功能构建网站的搜索功能。但随着信息的累积,使用数据库中的类like‘%keyword%’查询构成的数据检索性能将急剧下降,因此,只使用数据库查询进行全文检索并不是一个好的解决方案。 Lucene是一个基于Java技术的全文索引引擎工具包,它可以方便地嵌入到各种应用中实现针对应用的全文索引/检索功能。例如 Lucene可以快速实现一个简单、功能强大的数据全文检索系统。 Lucene富有弹性的软件架构可以使我们方便地对其功能进行扩充,以快速实现一个通用网站的全文搜索引擎。该搜索引擎的实现既可以避免使用数据库的Like‘keyword’查询带来的低效性和影响数据库的其他正常使用等问题,也可以避免使用其他大型搜索引擎的站内搜索功能所遇到的更新慢、数据不准确、无法控制输出格式等问题。 由于数据库索引不是为全文索引设计的,因此,使用like %keyword%时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like%keyword1% and like %keyword2% ...其效率也就可想而知了。所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==文章映射关系,利用这样的映射关系索引:[关键词==出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。 由此可以看出模糊查询相对数据库的精确查询是一个非常不确定的问题,这也是大部分数据库对全文检索支持有限的原因。Lucene最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制。 1.2 课题研究的背景 Lucene是Apache软件基金的一个子项目,是一个
显示全部
相似文档