欢迎来到天天文库
浏览记录
ID:24450551
大小:51.50 KB
页数:4页
时间:2018-11-14
《构建基于lucene的网站站内搜索》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、构建基于Lucene的网站站内搜索随着X络时代的发展,信息极具增加,搜索引擎已经成为人们最基本的应用。同时作为专业X站,实现X站信息的站内搜索已成为方便用户使用,吸引用户的基本要素。Lucene作为优秀的开源全文检索框架,可以很好的实现站内检索。关键词:Lucene;搜索引擎;站内搜索1.引言 自从有了计算机以后,人类开始用计算机保存信息,有保存就需要查找,于是出现了检索技术。文本检索技术的发展从最初的SMART文档检索系统到AltaVista搜索引擎,到现在的搜索巨头Google,人们习惯在互
2、联X上搜索需要的信息。同时在同一个X站内往往拥有大量的资源,怎样在X站内部使用户能够迅速的找到所需信息,已成为一个X站能够吸引用户的重要方面,建立站内搜索引擎成为必要。使用Lucene实现站内搜索比较与传统的使用数据库查询,使用Google提供的站内搜索存在优势。2.国内外现状分析 在如今的X站建设中,建立站内的全文检索有重要的意义。使用Lucene而不用直接从数据库里搜索记录,主要是基于以下原因: (1)性能问题,Lucene是基于文件索引的搜索机制,性能要比数据库里检索更快,特别是数据量大
3、的时候两者区别比较明显。 (2)目前很多X站,都已经将页面静态化,这种情况下,直接用生成的文件编制索引,再利用Lucene来检索,可以不用查询数据库,减轻了数据库的压力。 (3)Lucene可以更方便的进行分词,支持多个关键字检查等操作,在实现上要比数据库查询方便。 虽然大型搜索引擎的功能已经越来越强大了,国内外很多站点都使用了Google的站内检索代替了自己的站内数据库全文检索。但依靠Google这样的大型搜索引擎做站内检索会有以下弊端: (1)数量有限:搜索引擎并不会深度遍历一个X站而
4、将X站所有的内容都索引进去,例如Google更容易索引静态X页且是最新更新的。基于Lucene的站内搜索,可以索引所有需要的内容。 (2)更新慢:搜索引擎针对站点的更新频率也是有一定周期的,很多内容需要一定时间后才能进入GOOGLE的索引。基于Lucene的站内搜索,可以及时更新和删除索引。 (3)内容不精确:搜索引擎需要通过页面内容提取技术将导航条,页头页尾等内容过滤掉,这种摘要和排重机制是很难实现的。基于Lucene的站内搜索,因为对X站内容添加维护的同时进行索引添加,维护可以保证内容的精
5、确程度。 (4)无法控制输出:当有更多的输出需求,例如按时间排序,按点击量,按类目过滤等,则不够灵活。基于Lucene的站内搜索,使用Lucene的API可以按照实际需要对结果进行分析,排序。3.Lucene框架 ApacheLucene是一个基于Java全文搜索引擎,提供一组解读,过滤,分析文件,编排和使用索引的API。使用Lucene建立站内搜索可以方便用户查找信息,并且基于Lucene的全文检索便于索引添加,维护,搜索,并能对搜索结果进行分析,排序。图1列出了Lucene的系统结构与源码
6、组织图。 图1Lucene的系统结构与源码组织图。 从图中看到,Lucene的系统由基础结构封装、索引核心、对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。Lucene将所有源码分为了7个模块,并分别放在七个包中,分别是:analysis,document,index,queryParser,search,store,util。以下分四个部分对Lucene框架的使用进行阐述。 (1)建立索引 Lucene提供了非常简单的建立索引的方法,只要能将要索引的文件转化为文本格式
7、,Lucene就能为这些文档建立索引,建立索引的过程分为以下三个步骤。 第一步:将不同的数据源组织成一个Document类型的对象。 第二步:对要建立索引的数据对象进行分析。 第三步:按照Lucene的索引格式将数据写入索引文件。 Lucene提供了五个基础的类来实现这些步骤,分别是Document,Field,Index].北京:科学出版社,2004.[2]车东.Lucene:基于Java的全文检索引擎简介[OL].[2008-11-24].tech/lucene..[3]邱哲.开发自己
8、的搜索引擎--LUCENE2.0+HERITRIX[M].北京:人民邮电出版社,2007.
此文档下载收益归作者所有