Lucene 基本原理(二)总体架构设计

 1.Lucene架构设计

Lucene 基本原理(二)总体架构设计
Lucene架构设计

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

(1)Index Doucuments 索引

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

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

建立索引的数据,包含结构化和非结构化的数据,都是建立索引的基础;

(2)Search Index 搜索

根据用户搜索的内容,搜索建立的索引,并返回搜索结果;

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

2. 官方API

Lucene 的版本更新变化快,不同版本基于不同的JDK版本,使用时一定要到官网查证。此外,不同版本的Lucene的API也是有变化的,本博客是基于7.6版本的。具体API 请查看官网:http://lucene.apache.org/core/7_6_0/core/overview-summary.html

Lucene 基本原理(二)总体架构设计

具体,API有几个核心的包,介绍如下:

org.apache.lucene.analysis 模块主要负责词法分析及语言处理而形成Term;

org.apache.lucene.codecs 模块负责索引的编码和解码;

org.apache.lucene.document 模块负责创建索引是Fileds相关;

org.apache.lucene.index 模块主要负责索引的创建,里面有IndexWriter ;

org.apache.lucene.search  模块主要负责对索引的搜索;

org.apache.lucene.store 模块主要负责索引的读写;

org.apache.lucene.util 模块负责工具类;

3.总结

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

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

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