Lucene 原理与代码分析系列文章已经基本告一段落,可能问题篇还会有新的更新。
完整版pdf可在下面的链接下载。
http://download.csdn.net/source/2452992
目录如下:
目录
第一篇:原理篇
第一章:全文检索的基本原理
一、总论
二、索引里面究竟存些什么
三、如何创建索引
第一步:一些要索引的原文档(Document)。
第二步:将原文档传给分次组件(Tokenizer)。
第三步:将得到的词元(Token)传给语言处理组件(Linguistic Processor)。
第四步:将得到的词(Term)传给索引组件(Indexer)。
1. 利用得到的词(Term)创建一个字典。
2. 对字典按字母顺序进行排序。
3. 合并相同的词(Term)成为文档倒排(Posting List)链表。
四、如何对索引进行搜索?
第一步:用户输入查询语句。
第二步:对查询语句进行词法分析,语法分析,及语言处理。
1. 词法分析主要用来识别单词和关键字。
2. 语法分析主要是根据查询语句的语法规则来形成一棵语法树。
3. 语言处理同索引过程中的语言处理几乎相同。
第三步:搜索索引,得到符合语法树的文档。
第四步:根据得到的文档和查询语句的相关性,对结果进行排序。
1. 计算权重(Term weight)的过程。
2. 判断Term之间的关系从而得到文档相关性的过程,也即向量空间模型的算法(VSM)。
第二章:Lucene的总体架构
第二篇:代码分析篇
第三章:Lucene的索引文件格式
一、基本概念
二、基本类型
三、基本规则
1. 前缀后缀规则(Prefix+Suffix)
2. 差值规则(Delta)
3. 或然跟随规则(A, B?)
4. 跳跃表规则(Skip list)
四、具体格式
<