1. Apache Lucene 4 Andrzej Bialecki,Robert Muir ,Grant Ingersoll Sigir2012 workshop.
总体并且从IR高度、工程实践角度、社区开源来组织文档,非常具有代表价值。参考论文,从这篇论文大概可以获取以下信息
1. 总体认识Lucene4 的新特性、新的结构和可扩展性。
2. 索引构建高性能为何 Lucene4 高并发无锁写索引
3. 各种自定义优化数据结构 Codec编码
4. 新的词典结构 有限自动机
5. 倒排压缩 各种先进的压缩算法
6.各种得分模型 向量到概率到统计到语言到信息模型
7.基于测试驱动
2. Heavy committing Flixible Indexing in Lucene 4 Uwe Schindler
从起源分析或者需求开篇,why lucene的索引结构是这样设计。重点在codec!
围绕索引结构提供倒排的编码压缩,到排序更多的统计信息写入索引,打开信息检索研究的口子,最后是API结构,优化patch的效率和方便性。
注意,到目前4.0版本其实很多类还没真正稳定下来,也就说后面4.1以及更高版本会调整API。
从中获取大致如下重要信息
1.新的lucene4.0结构
2.4维跌倒API构成索引的核心API
3.FieldCache的优化对内存和性能的极大提升,理解基于字节缓存
4.桥梁和灵活性索引结构的Codec配置和基本结构,影响了整个索引的增删改合
5.Codec的未来工作计划
3. Improved search with lucene 4.0 robert Muir 2011.10.19
从索引、查询、性能三个方面全面介绍lucene4.0改进点。从该ppt获取如下信息
1.索引改进:codecs、docValues(注意他的usecase)、二进制term。非常好的是从需求出发,然后围绕需求提供解决方法,最后提供最后的性能数据
2.具体性能点
索引:Codecs 、DocValues 、BinaryTerms 、Index Statistics
查询:Scoring(BM25\Language Models\Divergernce from Randomness\ Infromation-based Models)Spellchecking 、Regular expression queries 、Deep-paging
性能:Concurrent Flushing、Fast Fuzzy Query、RAM efficiency
3.未来工作 注意倒排压缩和索引分块压缩这些最新技术
PFOR-delta Simple8b
4. Performance optimization with Lucene 4.0
从灵活性、速度和效率3个方面展开,这个ppt与3有交叉,需要与上一篇配合。
但是这一篇除了性能点之外,还有不少使用场景提示,方便了实际优化过程中技术细节处理。非常值得一度。
注意:bloom Postings Format、 block Posting Format、Block Tree Term Index、Compressed stored fields、Filter execution
5.FST相关算法细节
5-0.Finite State Automata in lucene Dawid welss 专门针对FSA|FST来讲,对FSA生成和使用做了实例演示,非常好,并且必需看明白的。
5-1 Automata Invasion Michael McCandless Rebert Muir 2012.5.9
总体讲解FSA finate state automata 有限状态机(可以理解一种静态形态)FST finate state transducer 有限状态转录机(可以理解为一种动态形态)
在lucene里面的三种场景:Automaton 输入提示、FST、词条流
这部分非常需要仔细琢磨,并且要求理解一序列基础算法,可以说掌握lucene4.0的精华少不了对FST和FSA的原理和实现的深刻认识。
5-2 这部分最好结合Lucene4 –Next generation open source search后部分结构图,总体理解和掌握索引结构和倒排的读写。
5-3 FST匹配原理文档
Fast approximate string matching with finite automata(76页不是一般的长啊)
5-4 FST原理参考文档
在阅读源码前,非常有必要对基本原理的熟悉,可以极大的帮助读懂源码,否则很能全面认识算法的实现和细节背后的原因。这部分代码不仅仅是工程更是算法的。
文本参考文档:
http://www.blogjava.net/wxqxs/archive/2009/05/16/277327.html