基于Java的全文索引引擎

在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介作者:车东Email:chedongATbigfoot/chedongATchedong写于:2002/08最后更新:09/09/200617:09:05FeedBack>>(Readthisbeforeyouaskquestion)版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明wwchedong/tech/lucene关键词:Lucenejavafull-textsearchengineChinesewordsegment内容摘要:Lucene是一个基于Java的全文索引工具包。1.基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史2.全文检索的实现:Luene全文索引和数据库索引的比较3.中文切分词机制简介:基于词库和自动切分词算法的比较4.具体的安装和使用简介:系统结构介绍和演示5.HackingLucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展6.从Lucene我们还可以学到什么基于Java的全文索引/检索引擎——LuceneLucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。Lucene的作者:Lucene的贡献者DougCutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。Lucene的发展历程:早先发布在作者自己的wwlucene,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:jakarta.apache.org/lucene/已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:Jive:WEB论坛系统;Eyebrows:邮件列表HTML归档/浏览/查询系统,本文的主要参考文档“TheLucenesearchengine:Powerful,flexible,andfree”作者就是EyeBrows系统的主要开发者之一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统。Cocoon:基于XML的web发布框架,全文检索部分使用了LuceneEclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。全文检索的实现机制Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口中。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。比较一下Lucene和数据库:Lucene数据库索引数据源:doc(field1,field2...)doc(field1,field2...)\indexer/_____________|LuceneIndex|--------------/searcher\结果输出:Hits(doc(field1,field2)doc(field1...))索引数据源:record(field1,field2...)record(field1..)\SQL:insert/_____________|DBIndex|-------------/SQL:select\结果输出:results(record(field1,field2..)record(field1...))Document:一个需要进行索引的“单元”一个Document由多个字段组成Record:记录,包含多个字段Field:字段Field:字段Hits:查询结果集,由匹配的Document组成RecordSet:查询结果集,由多个Record组成全文检索≠like"%keyword%"通常比较厚的书籍后面常常附关键词索引表(比如:北京:12,34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心是一个排序问题。由于数据库索引不是为全文索引设计的,因此,使用like"%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%"andlike"%keyword2%"...其效率也...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?