Lucene:基于 Java 的全文检索引擎简介
文章来源 http://www.chedong.com/tech/lucene.html
Lucene 是一个基于 Java 的全文索引工具包。
1. 基于 Java 的全文索引引擎 Lucene 简介:关于作者和 Lucene 的历史
2. 全文检索的实现: Luene 全文索引和数据库索引的比较
3. 中文切分词机制简介:基于词库和自动切分词算法的比较
4. 具体的安装和使用简介:系统结构介绍和演示
5. Hacking Lucene :简化的查询分析器,删除的实现,定制的排序,应用接口的扩展
6. 从 Lucene 我们还可以学到什么
另外,如果是在选择全文引擎,现在也许是试试 Sphinx 的时候了:相比 Lucene 速度更快, 有中文分词的支持 ,而且内
置了对简单的分布式检索的支持;
基于 Java 的全文索引 /检索引擎 ——Lucene
Lucene 不是一个完整的全文索引应用,而是是一个用 Java 写的全文索引引擎工具包,它可以方便的嵌入到各种应用中
实现针对应用的全文索引 / 检索功能。
Lucene 的作者: Lucene 的贡献者 Doug Cutting 是一位资深全文索引 / 检索专家,曾经是 V-Twin 搜索引擎 (Apple 的
Copland 操作系统的成就之一 )的主要开发者, 后在 Excite 担任高级系统架构设计师, 目前从事于一些 INTERNET底层架
构的研究。他贡献出的 Lucene 的目标是为各种中小型应用程序加入全文检索功能。
Lucene 的发展历程:早先发布在作者自己的 www.lucene.com ,后来发布在 SourceForge,2001 年年底成为 APACHE
基金会 jakarta 的一个子项目: http://jakarta.apache.org/lucene/
已经有很多 Java 项目都使用了 Lucene 作为其后台的全文索引引擎,比较著名的有:
Jive:WEB论坛系统;
Eyebrows:邮件列表 HTML 归档/ 浏览 / 查询系统,本文的主要参考文档 “TheLucene search engine: Powerful,
flexible, and free ”作者就是 EyeBrows 系统的主要开发者之一, 而 EyeBrows 已经成为目前 APACHE项目的
主要邮件列表归档系统。
Cocoon:基于 XML的 web 发布框架,全文检索部分使用了 Lucene
Eclipse:基于 Java 的开放开发平台,帮助部分的全文索引使用了 Lucene
对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于 Lucene 的结构的介绍,你会了解到
由于 Lucene 良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。
全文检索的实现机制
Lucene 的 API 接口设计的比较通用,输入输出结构都很像数据库的表 ==>记录 ==>字段,所以很多传统的应用的文件、
数据库等都可以比较方便的映射到 Lucene 的存储结构 / 接口中。总体上看:可以先把 Lucene 当成一个支持全文索引的
数据库系统 。
比较一下 Lucene 和数据库:
Lucene 数据库