Lucene是一个开源的全文检索引擎工具包,最初由Doug Cutting开发。早在1997年,资深全文检索专家 Doug Cutting用一个周末时间,使用Java语言创作了一个文本搜索的开源函数库,目的是为各种中小型应用软件加入全文搜索功能,不久以后,Lucene诞生了,2000年Lucene称为Apache开源社区的一个子项目。随着Lucene被人们熟知,越来越多的用户和研发人员加入其中,完善并壮大项目的发展,Lucene已成为最受欢迎的具有完整的查询引擎和索引引擎的全文检索库。
Lucene从问世之后,引发了开源社区的巨大反响,程序员们不仅使用它构建全文检索应用,而且将之集成到各种系统软件中去,除此之外还用来构建Web应用。维基百科用Lucene建立了一个站内的强大搜索功能,用以检索站内数以千万的词条。IBM的商业软件Web Sphere也采用了Lucene作为全文索引引擎。Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene的优点主要有以下3点:
1.稳定,索引性能高
现在硬盘上每小时能够索引150GB以上的数据。
对内存的要求小,只需要1MB的对内存。
增量索引和批量索引一样快
索引的大小约为索引文本大小的20%~30%。
2.高效、准确、高性能的搜索算法
搜索排名———最好的结果显示在最前面。
许多强大的查询类型:短语查询,通配符查询,近似查询、范围查询等。
对字段级别搜索(如标题,作者,内容)。
可以对任意字段排序。
支持搜索多个索引并合并索引结果
支持更新操作和查询操作同时进行
灵活等切面、高亮、join和group by功能。
速度快,内存效率高,容错性好。
可选排序模型,包括向量空间模型和BM2,5模型。
可配置存储引擎。
3.跨平台解决方案
作为Apache开源许可,在商业软件和开放程序中都可以使用Lucene。
100%纯Java编写。
对多种语言提供接口。