欢迎来到天天文库
浏览记录
ID:38619835
大小:50.00 KB
页数:5页
时间:2019-06-16
《全文搜索引擎的设计与实现(文献综述)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、全文搜索引擎的设计与实现前言面对海量的数字化信息,搜索引擎技术帮助我们在其中发现有价值的信息与资源。我们可以通过google、百度这样的搜索引擎服务提供商帮助我们在Internet上搜索我们需要的信息。但是在一些没有或不便于连入Internet的内部网络或者是拥有海量数据存储的主机,想要通过搜索来发现有价值的信息和资源却不太容易。所以开发一个小型全文搜索引擎,实现以上两种情况下的信息高效检索是十分有必要的。本设计着眼于全文搜索引擎的设计与实现,利用Javaee结合Struts,Spring,Hibe
2、rnates以及Ajax等框架技术,实现基于apache软件基金会开源搜索引擎框架Lucene下的一个全文搜索引擎。正文搜索引擎技术起源1990年,蒙特利尔大学学生AlanEmtage、PeterDeutsch和BillWheelan出于个人兴趣,发明了用于检索、查询分布在各个FTP主机中的文件Archie,当时他们的目的仅仅是为了在查询文件时的方便,他们未曾预料到他们的这一创造会成就日后互联网最的广阔市场,他们发明的小程序将进化成网络时代不可或缺的工具——搜索引擎。1991年,在美国CERFnet
3、、PSInet及Alternet网络组成了CIEA(商用Internet协会)宣布用户可以把它们的Internet子网用于商业用途,开始了Internet商业化的序幕。商业化意味着互联网技术不再为科研和军事领域独享,商业化意味着有更多人可以接触互联网,商业化更意味着潜在的市场和巨大的商机。1994年,MichaelMauldin推出了最早的现代意义上的搜索引擎Lycos,互联网进入了搜索技术的应用和搜索引擎快速发展时期。以上是国际互联网和搜索引擎发展历史上的几个重要日子。互联网从出现至今不过15年左
4、右时间,搜索引擎商业化运作也就10年左右。就在这短短的10年时间里,互联网发生了翻天覆地的变化,呈爆炸性增长。于此同时也成就了google、百度这样的互联网巨头。今天,当我们想要在这片广阔的信息海洋中及时获得想要查找的信息时,已经离不开搜索引擎了。相关技术1.Lucene谈到搜索引擎除了google、百度这些互联网巨头,在开源界也有很好的全文检索引擎的架构——Lucene。Lucene是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,它不是一个完整的全
5、文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。ap
6、ache软件基金会的网站使用了Lucene作为全文检索的引擎,IBM的开源软件eclipse的2.1版本中也开始采用了Lucene作为帮助子系统的全文索引引擎,相应的IBM的商业软件WebSphere中也采用了Lucene。Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的ApacheJakarta大家庭的
7、一员,并且基于在Apache软件许可[ASF,License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。Lucene作为一个全文检索引擎,其具有如下突出的优点:(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。(3)优秀的面向
8、对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(FuzzySearch[11])、分组查询等等。2.JavaEEJavaEE(JavaPlatform,En
此文档下载收益归作者所有