本文主要讨论Lucene的系统结构,希望对其结构的初步分析,更深入的了解Lucene的运作机制,从而实现对Lucene的功能扩展。
1.Lucene的包结构
如上图所示,Lucene源码中共包括7个子包,每个包完成特定的功能:
|
Lucene包结构功能表
|
|
包名
|
功能
|
|
org.apache.lucene.analysis
|
语言分析器,主要用于的切词,支持中文主要是扩展此类
|
|
org.apache.lucene.document
|
索引存储时的文档结构管理,类似于关系型数据库的表结构
|
|
org.apache.lucene.index
|
索引管理,包括索引建立、删除等
|
|
org.apache.lucene.queryParser
|
查询分析器,实现查询关键词间的运算,如与、或、非等
|
|
org.apache.lucene.search
|
检索管理,根据查询条件,检索得到结果
|
|
org.apache.lucene.store
|
数据存储管理,主要包括一些底层的I/O操作
|
|
org.apache.lucene.util
|
一些公用类
|
2.Lucene的主要逻辑图
Lucene功能强大,但从根本上说,主要包括两块:一是文本内容经切词后索引入库;二是根据查询条件返回结果。
以下是上述两大功能的逻辑图:
[1] [ 2] [ 3] 
|
|
|