第1部分 Lucene基础(第1~5章) 3
第1章 Lucene简介 3
1.1认识Lucene 3
Lucene是什么 3
Lucene的作者 3
Lucene的历史 3
Lucene的现在 4
1.2 Lucene体验实例 4
下载Lucene 4
编写辅助类 6
最简单的搜索引擎 10
索引器的开发 11
索引器的运行 18
搜索器的开发 20
搜索器的运行 27
小结 28
第2章 创建索引 29
2.1创建索引的基本方式 29
理解创建索引的过程 29
创建Field 31
创建Document 31
创建IndexWriter 31
2.2创建索引实例 32
简单索引 32
复杂一点的索引 35
为文件创建索引 39
为某一目录下的所有文件创建索引 42
小结 46
第3章 执行搜索 47
3.1执行搜索的基本方式 47
创建搜索器对象:IndexSearcher 47
封装搜索条件:使用Term和Query对象 47
执行搜索 48
提取搜索结果:了解Hits对象 48
提取搜索结果:了解Document对象 49
提取搜索结果:了解Field对象 49
3.2执行搜索实例 49
简单搜索 49
分词问题 52
小结 53
第4章 中文分词 55
4.1说说分词 55
分词的方法 55
做分词器 56
4.2 Lucene的分词器 56
二分法分词器 56
Lucene自带的中文分词器 62
NGram分词器的原理和用法 68
JE分词器的原理和用法 69
IK分词器的原理和用法 75
其他分词器 87
小结 87
第5章 Lucene搜索引擎开发基础实例 89
5.1概述 89
5.2桌面搜索引擎:索引器 89
索引器简介 89
索引器设计 89
索引器实现 91
实例效果 99
5.3桌面搜索引擎:搜索器 101
搜索器简介 101
搜索器设计 101
搜索器实现 101
实例效果 109
5.4 Web搜索引擎:搜索器 111
搜索器简介 111
搜索器界面 111
搜索器实现 112
搜索器部署 115
实例效果 117
小结 118
第2部分 数据解析(第6~8章) 121
第6章 常用的数据解析组件 121
6.1常见二进制文档的解析 121
解析PDF文档 121
解析Word文档 131
解析Excel文档 137
6.2 XML文档的解析 145
使用DOM4J解析XML文档 146
XML文档标准解析器 149
6.3 HTML文档的解析 151
下载HTMLParser组件 151
网页编码问题 153
网页解析的一般方法 154
常见的解析要求 162
6.4集成的数据解析器 172
文本文件解析器 172
集成解析器 174
6.5改良的搜索引擎 177
改良的索引器 177
测试搜索器 186
小结 193
第7章 Lucene自身的数据解析方法 195
7.1处理PDF文档——LucenePDFDocument 195
7.2处理纯文本文件——TextDocument 195
7.3综述 199
小结 199
第8章 Lius类库 201
8.1初识Lius 201
Lius简介 201
Lius的功能 202
下载Lius 202
Lius的目录结构 204
一个简单的例子 208
8.2借助Lius解析普通数据 209
取我所需,为我所用 209
解析Word 210
解析Excel 211
解析PDF 213
解析PowerPoint 215
解析RTF 217
解析TXT 218
解析XML 220
8.3借助Lius解析HTML数据 221
Lius解析HTML的方式 221
JTidyHtmllndexer的使用 222
NekoHtmlIndexer的使用 224
小结 225
第3部分 索引的高级知识(第9~10章) 229
第9章 索引的建立和优化 229
9.1索引建立的过程 229
Lucene的索引机制 229
文本的分析 230
9.2索引文件的生成 244
生成索引文件的过程 244
索引文件的格式 247
9.3索引的优化 248
索引优化的本质 248
复合式索引格式 248
调整索引优化参数 259
内存缓冲器与索引合并 264
限制每个Field的词条数量 274
索引本身的优化 276
查看索引的过程 279
小结 285
第10章 索引的管理 287
10.1查看索引的信息 287
使用IndexWriter类读取索引的相关信息 287
使用IndexReader及其子类读取索引的相关信息 289
10.2删除索引中的文档 296
使用IndexReader从索引中删除文档 296
使用IndexModifier从索引中删除文档 304
10.3更新索引中的文档 307
更新索引中的单个文档 307
批量更新索引中的文档 310
10.4索引的同步 314
Lucene的并发访问规则 314
线程安全性 314
索引锁机制 315
10.5使用Luke管理索引 315
下载Luke 315
使用Luke 317
10.6使用Limo管理索引 321
下载Limo 322
使用Limo 324
小结 324
第4部分 搜索的高级知识(第11~12章) 327
第11章 搜索请求的构建和解析 327
11.1构建多种搜索请求 327
词条搜索 327
组合搜索 330
范围搜索 344
前缀搜索 350
短语搜索 353
多短语搜索 360
模糊搜索 364
通配符搜索 370
正则表达式匹配搜索 373
综述 376
11.2解析搜索请求 376
QueryParser的基本使用 377
使用QueryParser解析多个关键词 380
11.3高级搜索 387
多字段搜索 387
多索引搜索 397
多线程搜索 402
小结 404
第12章 搜索结果的处理和显示 405
12.1提取搜索结果 405
Hits对象的方法 405
对性能的说明 410
12.2过滤搜索结果 413
简单的结果过滤 414
利用Filter类实现过滤 421
QueryFilter的使用 421
PrefixFilter的使用 432
RangeFilter的使用 439
ChainedFilter的使用 446
Caching WrapperFilter的使用 455
FilteredQuery的使用 458
综述 462
12.3搜索结果的排序 462
按照文档得分排序 462
自定义排序规则 477
让系统决定如何排序 479
按照索引中的文档编号排序 483
按照文本字段排序 487
指定字段的数据类型 491
按多个字段排序 496
综述 504
12.4搜索结果的高亮显示 504
关于高亮显示 504
Lucene高亮处理的基本方式 506
Lucene高亮处理的基本设置 511
为高亮显示设置新的格式 515
小结 519
第5部分 lucene应用实例(第13~14章) 523
第13章 桌面搜索引擎开发实例 523
13.1桌面搜索引擎简介 523
13.2桌面搜索引擎索引器 524
索引器简介 524
索引器设计 524
解析器实现 525
获取文件列表 536
索引器实现 538
实例效果 545
13.3桌面搜索引擎搜索器 547
搜索器简介 547
搜索器设计 548
搜索器实现 548
实例效果 556
小结 557
第14章 Web搜索引擎开发实例 559
14.1 Web搜索引擎简介 559
14.2 Web搜索引擎索引器 559
索引器简介 559
索引器设计 559
解析器实现 561
获取文件列表 572
索引器实现 574
实例效果 581
14.3 Web搜索引擎搜索器 583
搜索器简介 583
搜索器界面 584
搜索器实现 584
实例效果 589
综述 590
小结 592
第6部分 Nutch搜索引擎框架(第15~16章) 595
第15章 了解Nutch 595
15.1搭建搜索引擎的方法 595
搭建搜索引擎的一般方法 595
搭建网络搜索引擎的方法 595
15.2关于Nutch 596
Nutch是什么 596
Nutch和Lucene 597
Nutch的架构 597
Nutch的未来 597
15.3获得Nutch 599
下载Nutch 599
Nutch的不同版本 601
小结 602
第16章 使用Nutch 603
16.1安装Nutch的准备 603
安装JDK 603
安装Tomcat 604
安装Cygwin 607
配置环境变量 611
16.2运行Nutch0.8.1 612
安装Nutch0.8.1 612
使用Nutch抓取网页 613
使用Nutch执行搜索 618
16.3运行Nutch0.9 622
安装Nutch0.9 622
使用Nutch抓取网页 622
使用Nutch执行搜索 626
Nutch的二次开发 629
小结 629
后记 631