首页>参考读物>计算机科学与技术>软件与程序设计

Lucene 分析与应用
作者 : 吴众欣 沈家立
丛书名 : 原创精品系列
出版日期 : 2008-10-22
ISBN : 7-111-24992-4
定价 : 39.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 279
开本 : 16开
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书通过对Lucene源代码的解说、辅以图表,并用一些具体实例把所有源代码进行组织与剖析,完整地展示Lucene从建立索引到查询的过程。本书还通过介绍Lucene的应用,体验Lucene具体项目开发的应用环境。最后简单地介绍了Nutch和Hadoop。
  本书尤其针对查询过程的算法分析道出了Lucene性能秘密,作者把Lucene开发者对查询性能的思考历程通过示例展示出来,将Lucene最精华的、最富有神秘色彩的代码剖析明白,这也是本书与其他Lucene书籍不同之处!
  本书适用于搜索引擎技术研究人员、Lucene爱好者、对搜索引擎内核与运行机制感兴趣的读者阅读。

本书特色
  ●详细解析源代码;
  ●完整展示工作过程;
  ●介绍具体项目开发的应用环境。

图书特色

图书前言

Google被人熟知,Baidu在中国成功推广,“搜索”吸引着IT界的眼球,也吸引了更多开发者的好奇心。于是诞生了Lucene,一个开源的全文检索API(Application Program Interface,应用程序界面)。并在Lucene的基础上,衍生出了一个全文检索引擎(Nutch)和分布式文件系统(Hadoop)。
  大家一定很好奇,Google的搜索引擎是如何工作的?采用什么样的文件系统?提供什么样的服务?……我们无法得知。Lucene与其相关的项目Nutch和Hadoop弥补了这个不足,让我们有机会了解到搜索引擎、分布式文件系统的内部工作原理。
  如果介绍一个软件或者一套框架如何使用是比较容易的,但是要从源代码剖析内核,却不容易。老吴与家立在写作期间,辗转难眠,思索如何表述才能够准确地把Lucene的设计精髓展现给读者。最终确定通过对Lucene源代码的解说、辅以图表,并通过一些具体实例把所有源代码进行组织与剖析,完整地展示 Lucene从建立索引到查询的完整过程。并通过介绍一些Lucene的应用,和读者分享Lucene在具体项目开发中的应用环境。同时,插入一些Lucene开发实例,抛砖引玉,试图让读者也能亲自体会Lucene本身的强大功能。最后,为了进一步说明Lucene的应用环境,本书简单地介绍了Nutch和Hadoop。
  老吴很早就开始研读Lucene的源代码,并阅读了Dong Cutting的相关论文,对Lucene的内核具有深刻的认识。我们很想与大家分享自己的学习体会和研究成果,于是决定把它写出来,家立负责Lucene多处应用部分的写作。Lucene是一个很活跃的开源项目,因为老吴研究得比较早,版本以1.4.3为主。为了能够跟上Lucene的步伐,家立推荐采用了较新的1.9~2.1版本进行分析。但是该版本的内核变化比较大,因此需要重新分析、调试、总结。为了尽快完成,我们日日熬夜,真所谓痛并快乐着。在此非常感谢家人的支持,朋友的鼓励。
  在此,向我的爱妻张信健对我的一贯支持表示感谢!谢谢你,我的爱人!
希望对搜索引擎内核与运行机制感兴趣的朋友阅读此书,由于时间仓促,难免有所疏漏,请读者批评指正。 
  吴众欣

封底文字

本书通过对Lucene源代码的解说、辅以图表,并用一些具体实例把所有源代码进行组织与剖析,完整地展示Lucene从建立索引到查询的过程。本书还通过介绍Lucene的应用,体验Lucene具体项目开发的应用环境。最后简单地介绍了Nutch和Hadoop。 本书尤其针对查询过程的算法分析道出了Lucene性能秘密,作者把Lucene开发者对查询性能的思考历程通过示例展示出来,将Lucene最精华的、最富有神秘色彩的代码剖析明白,这也是本书与其他Lucene书籍不同之处! 本书适用于搜索引擎技术研究人员、Lucene爱好者、对搜索引擎内核与运行机制感兴趣的读者阅读。 本书特色 ●详细解析源代码; ●完整展示工作过程; ●介绍具体项目开发的应用环境。

作者简介

吴众欣 沈家立:暂无简介

图书目录

前 言
第1章 搜索引擎与Lucene
 1.1 搜索引擎与Lucene简介
  1.1.1 搜索引擎分类
  1.1.2 Lucene项目简介
  1.1.3 其他搜索引擎开发包介绍
 1.2 Lucene的系统架构
  1.2.1 Lucene最简示例
  1.2.2 Lucene采用的索引结构
  1.2.3 Lucene软件包架构
 1.3 本书的章节导航
第2章 文档逻辑视图与文本分析
 2.1 文档逻辑视图
 2.2 Lucene的文本分析过程简介
 2.3 空格解析器(WhitespaceAnalyzer)
  2.3.1 空格分词器(WhitespaceTokenizer)
  2.3.2 Token(标志)
 2.4 标准解析器(StandardAnalyzer)
  2.4.1 标准分词器(StandardTokenizer)
  2.4.2 标准过滤器
 2.5 打造自己的解析器
  2.5.1 常用的中文分词法
  2.5.2 对CJKAnalyzer 的分析
  2.5.3 构造自己的解析器
第3章 Lucene创建索引之一(段索引方式与倒排索引结构)
 3.1 倒排结构与段索引方式
 3.2 索引写入过程概述


第4章 Lucene创建索引之二(在内存中创建索引)
 4.1 创建Document层面索引
 4.2 写入field信息
 4.3 文件倒排过程
 4.4 填写postingTable
 4.5 postingTable的排序过程
 4.6 写入field名字文件(.fnm文件)
 4.7 写入field信息文件(.fdt,.fdx文件)
 4.8 写入频率与位置文件(.frq与.prx文件)
 4.9 TermVector方式写入索引(.tvf,.tvd与.tvx文件)
 4.10 字典文件(.tis与.tii文件)
 4.11 写入规格化文件
第5章 Lucene创建索引之三(索引合并过程)
 5.1 document层面的合并过程
 5.2 field与term的合并过程
  5.2.1 field信息合并过程
  5.2.2 term信息合并过程
  5.2.3 合并norm信息
 5.3 Lunece索引采用的压缩算法

  5.3.1 front coding(端部编码)
  5.3.2 variablebyte coding(变长字节编码)
  5.3.3 deltacoding或deltaencoding
 5.4 小结


第6章 Lucene查询过程之一(查询模型与引擎预热)

 6.1 查询模型
  6.1.1 向量模型
  6.1.2 布尔模型
  6.1.3 Lucene的评分(score)方式
 6.2 查询简单示例
 6.3 引擎预热
  6.3.1 获得并打开索引文件
  6.3.2 获得segment信息
  6.3.3 FSDirectory打开索引过程
  6.3.4 获得field信息
  6.3.5 获得term信息
第7章 Lucene查询过程之二(查询解析与语法)
 7.1 构建查询解析器(QueryParser)
 7.2 Lucene的查询语法
  7.2.1 项(Term)查询
  7.2.2 域(Field)
  7.2.3 词条查询(Term Modifiers)
  7.2.4 布尔操作符(Boolean Operator)
  7.2.5 组合查询(Grouping) 
  7.2.6 针对field的组合查询(Field Grouping Field)
  7.2.7 Escaping Special Character(转义字符)
 7.3 Lucene查询语法树的构建过程
  7.3.1 过程分析
  7.3.2 语法树分析实例


第8章 Lucene查询过程之三(相似度匹配与算法分析)
 8.1 查询与相似度计算
  8.1.1 查询器(Searcher)的查询过程
  8.1.2 查询语句的权重计算
  8.1.3 获得topK个document
 8.2 Lucene查询算法分析
  8.2.1 相似度计算简单实例
  8.2.2 线性相似度计算
  8.2.3 基于倒排索引的相似度计算
  8.2.4 Lucene的相似度计算


第9章 Lucene标引与查询全程示例
 9.1 实例描述
 9.2 建立索引过程
  9.2.1 选择文档中建立索引的field
  9.2.2 选择field录入方式
  9.2.3 生成segment文件
  9.2.4 生成fields文件
  9.2.5 posting文件
  9.2.6 合并segment index生成index文件
  9.2.7 合并后的文件关系
 9.3 查询过程
第10章 Lucene的常用应用场景分析
 10.1 对大型XML文档集合的检索
  10.1.1 都柏林文件介绍
  10.1.2 XML分析器介绍
  10.1.3 Lucene在大型XML文件中的应用
 10.2 MultiSearcher的应用
  10.2.1 MultiSearcher的应用
  10.2.2 ParallelMultiSearcher的应用
第11章 利用Lucene构建分布式搜索引擎
 11.1 分布式文件系统和Hadoop
  11.1.1 Hadoop文件系统体系结构
  11.1.2 系统交互过程:单一NameNode方式
  11.1.3 系统组件描述
 11.2 Nutch简单剖析
 11.3 体验Nutch

附录A TestIndexWriterMerging
附录B TestDocumentWriter与DocHelper


教学资源推荐
作者: 李柏岩 尹枫 王洪亚 等编著
作者: 邱李华 郭志强 曹青
作者: 朱鸣华 罗晓芳 董明 孟军 汪德刚 编著
参考读物推荐
作者: [德]延斯·古斯泰特(Jens Gustedt) 著
作者: 张军
作者: (美)Steve Teixeira, Xavier Pacheco