预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包。 1.基于Java的全文索弓I弓I擎Lucene简介:关于作者和Lucene的历史 2.全文检索的实现:Luene全文索引和数据库索引的比较 3.中文切分词机制简介:基于词库和自动切分词算法的比较 4.具体的安装和使用简介:系统结构介绍和演示 5.HackingLucene:简化的杳询分析器,删除的实现,定制的排序,应用接口的扩展 6.从Lucene我们还可以学到什么 基于Java的全文索引/检索引擎一一Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可 以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者DougCutting是一位资深全文索引/检索专家,曾经是V-Twin 搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统 架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为 各种中小型应用程序加入全文检索功能。 Lucene的发展历程:早先发布在作者自己的,后来发布在SourceForge,2001年年底成为 APACHE基金会jakarta的一个子项目:已经有很多Java项目都使用了Lucene作为其后台的 全文索引引擎,比较著名的有: Jive:WEB论坛系统; Eyebrows:邮件列表HTML归档/浏览/杳询系统,本文的主要参考文档“TheLucene searchengine:Powerful,flexible,andfree”作者就是EyeBrows系统的主要开发者之 一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统。 Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene Eclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene 对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene 的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分 析接口进行扩展就能实现对中文检索的支持。 全文检索的实现机制 Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段, 所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口 中。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。 比较一下Lucene和数据库: Lucene数据库 索引数据源:doc(field1,field2...)索引数据源:record(field1,field2…) doc(field1,field2...)record(field1..) |LuceneIndex||DBIndex| 结果输出:Hits(doc(field1,field2)结果输出:results(record(field1,field2..) doc(field1...))record(field1...)) Document:一个需要进行索引的“单 Record:记录,包含多个字段 元” Field:字段Field:字段 Hits:查询结果集,由匹配的Document组成RecordSet:查询结果集,由多个Record组成 全文检索 通常比较厚的书籍后面常常附关键词索引表(比如:北京:12,34页,上海:3,77 页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查 询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高 多少倍..…而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心 是一个排序问题。 由于数据库索引不是为全文索引设计的,因此,使用时,数据库索引是不 起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对 于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键 词进行模糊匹配:…其效率也就可想而知了。 所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数 据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储 关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编 号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是 把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键 词查询的效率,