Apache Lucene 新手实战

1.什么是Lucene?

(1)根据Lucene官网的定义,Lucene包含:

Lucene Core  旗舰子项目,提供基于Java的索引和搜索技术,以及拼写检查,高亮显示和优秀的分析/标记能力。

Solr    基于Lucene核心构建的高性能搜索服务器,具有XML/HTTP和JSON/python/ruby API、能够进行高亮显示、分面搜索、缓存、备份和并具有Web管理界面。

PyLucene  基于Python的Lucene核心组件。

(2)百度百科,给出Lucene的定义

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。

2.Lucene的优势

(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。

(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。

(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。

(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。

(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即可使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。

3.Lucene架构设计

Lucene架构设计

针对开发者来说,Lucene最重要的两个部分:

(1)Index Doucuments 文件索引

能够针对文件系统、数据库、网络爬虫等方式的输入数据,建立索引;

能够针对txt、world、Excel、pdf等多种格式的文件,建立索引;

(2)Search Index 搜索

默认支持分组查询、布尔查询、模糊查询等功能;

4.总结

(1)Lucene 索引文件能够跨平台。基于Windows操作系统建立的索引,可以在Linux系统下,进行搜索,反之亦然;

(2)Lucene是基于倒排索引结构的,支持分块索引,小文件建立的索引能够进行合并,从而优化索引;

(3)Lucene的搜索默认实现了布尔查询、模糊查询、分组查询等;

猜你喜欢

转载自blog.csdn.net/u011001835/article/details/85600338