Lucene01-简介

Lucene到底是什么?它并不是一门语言,不是一个工具,它是搜索引擎领域一个重要组成部分,是实现提供高性能,进行全文索引和搜索等功能的开源库。

Lucene的优点

  • 索引文件格式独立于平台,使得不同的平台能够共享到索引文件;
  • 它具有优秀的面向对象的系统架构;
  • 它默认了一套强大的查询引擎,包括模糊查询,分组查询等。

Lucene的适用范围

  • 文本检索;
  • 网站的信息搜索;
  • 数据库的搜索

Lucene的架构

Lucene秉承了开源代码的一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在Lucene的基础上扩充各种功能,而且由于Lucene恰当合理地对系统设备做了程序上的抽象,扩展的功能也能轻易地达到跨平台的能力。
架构
组件
在上图中,Document对象表示被索引的文档,IndexWriter会通过函数AddDocument将文档添加到索引中,从而实现穿件索引的过程。又因为Lucene的Index是应用反向索引,当用户发出请求时,Query代表着用户的查询语句,IndexSearch通过函数search搜索Lucene的Index,同时计算term weight和score,并将结果及时地返回给用户,TOPDocsCllector则实现对返回给用户的文档集合展示,这样就将整个Lucene组建紧密地联系在了一起。