Lucene 基本原理(二)总体架构设计
1.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
具体,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的搜索默认实现了布尔查询、模糊查询、分组查询等;