Lucene&Solr 4 实践(2)

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。在第一部分,还不完善基础上,进入第二部分吧。结合源码来认识lucene!重点是:从需求到方案到实践编码到结果、从原理到实现、从结构到细节、从总体认识到西部深入。

1. Apache Lucene 4 Andrzej BialeckiRobert 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.索引改进:codecsdocValues(注意他的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 FlushingFast Fuzzy QueryRAM efficiency

3.未来工作 注意倒排压缩和索引分块压缩这些最新技术

PFOR-delta Simple8b

 

4. Performance optimization with Lucene 4.0

从灵活性、速度和效率3个方面展开,这个ppt3有交叉,需要与上一篇配合。

但是这一篇除了性能点之外,还有不少使用场景提示,方便了实际优化过程中技术细节处理。非常值得一度。

注意:bloom Postings Format block Posting FormatBlock Tree Term IndexCompressed stored fieldsFilter 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的精华少不了对FSTFSA的原理和实现的深刻认识。

 

5-2 这部分最好结合Lucene4 –Next generation open source search后部分结构图,总体理解和掌握索引结构和倒排的读写。

 

5-3  FST匹配原理文档

Fast approximate string matching with finite automata76页不是一般的长啊)

 

5-4  FST原理参考文档

在阅读源码前,非常有必要对基本原理的熟悉,可以极大的帮助读懂源码,否则很能全面认识算法的实现和细节背后的原因。这部分代码不仅仅是工程更是算法的。

文本参考文档:

http://www.blogjava.net/wxqxs/archive/2009/05/16/277327.html

目录
相关文章
|
XML 存储 JSON
Solr学习总结
Solr学习总结
125 0
Solr学习总结
|
存储 自然语言处理 算法
Lucene学习总结
Lucene学习总结
75 0
Lucene学习总结
|
存储 搜索推荐 Java
全文搜索引擎 Lucene Solr ElasticSearch 关系?
全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
全文搜索引擎 Lucene Solr ElasticSearch 关系?
|
算法 Java Maven
Lucene&solr 4 实践(4)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本部分主要分析FST,快乐理解lucene fst包的源码细节和来龙去脉。
118 0
|
自然语言处理 索引
Lucene&solr 4 实践(3)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本部分主要是针对FSA FST做前期知识储备和基本概念扫盲。FST是lucene4 solr4 的索引和查询的核心! 下面的内容来自多个出去,出去就不一一列举。
86 0
Lucene&solr 4 实践(3)
|
自然语言处理 Java API
Lucene&solr 4 实践(1)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。Solr&Lucene 4.0 好,很好,很强大。对于从lucene2.0 solr0.9 就关注,一直过来的人来讲, 4.X序列除了的架构、风格、API改变了很多很多,更重要的是业务的优化口子更多了,专业知识要求更高。整个架子的容量、包容性、以及适应信息检索的科研,直接上来demo运行easy、深入会很难。需要整理了解的知识点太多了。
78 0
|
自然语言处理 算法 架构师
Lucene&solr 4 实践(8)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。Lucene 5 有哪些点对大数据倒排索引和检索有优势 1.索引懒加载lazy加载,意味着按时间段或者其他分割的数据可以按需加载 2.FST词典结构以及基于图的索引、查询,使得内存消耗更低 3.异步合并,使得增量索引合并时的“索引整理”开销或者对查询影响更小 4.commitpoint 视图下reader自动更新,使得大规模数据的虚拟分组、全量切换更加方便。
115 0
|
自然语言处理 算法 Apache
Lucene&solr 4 实践(5)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。这部分先通透FST的原理和构造方法,方便理解lucene FST、Builder两个核心对象,从而彻底看清基于图的lucene4索引、查询的发展脉络。至于读懂后有神马用,自个琢磨啊! 看懂估计要死伤不少脑细胞哦!
193 0
|
存储 SQL 编解码
Solr-lucene 使用案例大全
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。 本文sole lucene的使用案例汇总。
189 0
|
存储 自然语言处理 Java
lucene&solr-day1
    全文检索课程 Lucene&Solr(1)        1.   计划 第一天:Lucene的基础知识 1、案例分析:什么是全文检索,如何实现全文检索 2、Lucene实现全文检索的流程 a)       创建索引 b)       查询索引 3、配置开发环境...
1344 0