自己动手写分布式搜索引擎
上QQ阅读APP看书,第一时间看更新

3.1 Lucene快速入门

Lucene是一个开放源代码的全文索引库,完成基本功能只有1个不依赖外部程序包的jar文件。因为这个文件是一个核心文件,所以称为lucene-core-Version.jar。例如,Lucene的6.3.0版本叫作lucene-core-6.3.0.jar。可以从http://lucene.apache.org/core/下载这个jar包。

待查询的文档集合按词组织成倒排索引。Lucene中的索引库是位于一个目录下的一些二进制文件。Lucene中的索引库叫作Index。和一般的数据库不一样,Lucene不支持定义主键。在Lucene中并不存在一个叫作Index的类。通过IndexWriter来写索引,通过IndexReader读索引。索引库在物理形式上一般是位于某个路径下的一系列文件。

先介绍如何创建索引库,然后介绍如何搜索索引库。总的来说,往Lucene中放的是文档,查询的是词,查询返回的也是文档。使用Lucene实现搜索的基本概念如图3-1所示。

图3-1 Lucene搜索的基本概念

为了对Lucene有个大体了解,先用伪代码说明Lucene的核心概念。