图书介绍
Lucene实战PDF|Epub|txt|kindle电子书版本网盘下载
![Lucene实战](https://www.shukui.net/cover/67/34602560.jpg)
- (美)麦肯德利斯,(美)哈彻,(美)高斯波纳提克著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115251770
- 出版时间:2011
- 标注页数:454页
- 文件大小:68MB
- 文件页数:465页
- 主题词:互联网络-程序设计
PDF下载
下载说明
Lucene实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分lucene核心3
第1章初识Lucene3
1.1应对信息爆炸4
1.2Lucene是什么5
1.2.1Lucene能做些什么6
1.2.2Lucene的历史7
1.3Lucene和搜索程序组件9
1.3.1索引组件10
1.3.2搜索组件13
1.3.3搜索程序的其他模块16
1.3.4Lucene与应用程序的整合点18
1.4Lucene实战:程序示例18
1.4.1建立索引19
1.4.2搜索索引22
1.5理解索引过程的核心类25
1.5.1IndexWriter25
1.5.2Directory25
1.5.3Analyzer26
1.5.4Document26
1.5.5Field27
1.6理解搜索过程的核心类27
1.6.1IndexSearcher27
1.6.2Term28
1.6.3Query28
1.6.4TermQuery28
1.6.5TopDocs29
1.7小结29
第2章构建索引30
2.1Lucene如何对搜索内容进行建模31
2.1.1文档和域31
2.1.2灵活的架构32
2.1.3反向规格化(Denormalization)32
2.2理解索引过程33
2.2.1提取文本和创建文档33
2.2.2分析文档34
2.2.3向索引添加文档34
2.3基本索引操作35
2.3.1向索引添加文档35
2.3.2删除索引中的文档38
2.3.3更新索引中的文档39
2.4域选项41
2.4.1域索引选项41
2.4.2域存储选项42
2.4.3域的项向量选项42
2.4.4ReaderTokenStream和byte域值42
2.4.5域选项组合43
2.4.6域排序选项44
2.4.7多值域44
2.5对文档和域进行加权操作45
2.5.1文档加权操作45
2.5.2域加权操作46
2.5.3加权基准(Norms)47
2.6索引数字、日期和时间48
2.6.1索引数字48
2.6.2索引日期和时间49
2.7域截取(Fieldtuncadion)50
2.8近实时搜索(Nearrealtimesearch)51
2.9优化索引51
2.10其他Directo子类52
2.11并发、线程安全及锁机制55
2.11.1线程安全和多虚拟机安全55
2.11.2通过远程文件系统访问索引56
2.11.3索引锁机制57
2.12调试索引59
2.13高级索引概念60
2.13.1用IndexReader删除文档61
2.13.2回收被删除文档所使用过的磁盘空间62
2.13.3缓冲和刷新62
2.13.4索引提交63
2.13.5ACID事务和索引连续性65
2.13.6合并段66
2.14小结68
第3章为应用程序添加搜索功能70
3.1实现简单的搜索功能71
3.1.1对特定项的搜索72
3.1.2解析用户输入的查询表达式:QueryParser73
3.2使用IndexSearcher类76
3.2.1创建IndexSearcher类76
3.2.2实现搜索功能78
3.2.3使用TopDocs类78
3.2.4搜索结果分页79
3.3理解Lucene的评分机制81
3.3.1Lucene如何评分81
3.3.2使用explain()理解搜索结果评分83
3.4Lucene的多样化查询84
3.4.1通过项进行搜索:TermQue类85
3.4.2在指定的项范围内搜索:TennRangeQue类86
3.4.3在指定的数字范围内搜索:NumericRangeQue类87
3.4.4通过字符串搜索:PrefixQue类88
3.4.5组合查询:BooleanQue类88
3.4.6通过短语搜索:PhraseQue类91
3.4.7通配符查询:WildcardQue类93
3.4.8搜索类似项:FuzzyQue类94
3.4.9匹配所有文档:MatchARDocsQue类95
3.5解析查询表达式:QueParser96
3.5.1QuetoString方法97
3.5.2TennQue97
3.5.3项范围查询98
3.5.4数值范围搜索和日期范围搜索99
3.5.5前缀查询和通配符查询99
3.5.6布尔操作符100
3.5.7短语查询100
3.5.8模糊查询101
3.5.9MatchAllDocsQue102
3.5.10分组查询102
3.5.11域选择103
3.5.12为子查询设置加权103
3.5.13是否一定要使用QueParse103
3.6小结104
第4章Lucene的分析过程105
4.1使用分析器106
4.1.1索引过程中的分析107
4.1.2QueParser分析109
4.1.3解析vs分析:分析器何时不再适用109
4.2剖析分析器110
4.2.1语汇单元的组成111
4.2.2语汇单元流揭秘112
4.2.3观察分析器115
4.2.4语汇单元过滤器:过滤顺序的重要性119
4.3使用内置分析器121
4.3.1StopAnalyzer122
4.3.2StandardAnalyzer122
4.3.3应当采用哪种核心分析器123
4.4近音词查询123
4.5同义词、别名和其他表示相同意义的词126
4.5.1创建SynonymAnalyzer127
4.5.2显示语汇单元的位置131
4.6词干分析132
4.6.1StopFilter保留空位133
4.6.2合并词干操作和停用词移除操作134
4.7域分析134
4.7.1多值域分析135
4.7.2特定域分析135
4.7.3搜索未被分析的域136
4.8语言分析139
4.8.1Unicode与字符编码139
4.8.2非英语语种分析140
4.8.3字符规范化处理140
4.8.4亚洲语种分析141
4.8.5有关非英语语种分析的其他问题143
4.9Nutch分析144
4.10小结146
第5章高级搜索技术147
5.1Lucene域缓存148
5.1.1为所有文档加载域值149
5.1.2段对应的reader149
5.2对搜索结果进行排序150
5.2.1根据域值进行排序150
5.2.2按照相关性进行排序153
5.2.3按照索引顺序进行排序154
5.2.4通过域进行排序154
5.2.5倒排序155
5.2.6通过多个域进行排序156
5.2.7为排序域选择类型157
5.2.8使用非默认的locale方式进行排序157
5.3使用MulPhraseQue158
5.4针对多个域的一次性查询160
5.5跨度查询162
5.5.1跨度查询的构建模块:SpanTerQue165
5.5.2在域的起点查找跨度166
5.5.3彼此相邻的跨度167
5.5.4在匹配结果中排除重叠的跨度169
5.5.5SpanOrQue类170
5.5.6SpanQue类和QueParser类171
5.6搜索过滤172
5.6.1TemiRangeFilter173
5.6.2NumericRangeFilter174
5.6.3FieldCacheRangeFilter174
5.6.4特定项过滤174
5.6.5使用QueWrapperFilter类175
5.6.6使用SpanQueFilter类175
5.6.7安全过滤器176
5.6.8使用BooleanQue类进行过滤177
5.6.9PrefixFilter178
5.6.10缓存过滤结果178
5.6.11将lter封装成que179
5.6.12对过滤器进行过滤179
5.6.13非Lucene内置的过滤器180
5.7使用功能查询实现自定义评分180
5.7.1功能查询的相关类180
5.7.2使用功能查询对最近修改过的文档进行加权182
5.8针对多索引的搜索184
5.8.1使用MultiSearch类184
5.8.2使用ParalletMultiSearcher进行多线程搜索186
5.9使用项向量186
5.9.1查找相似书籍187
5.9.2它属于哪个类别190
5.9.3TermVectorMapper类193
5.10使用FieldSelector加载域194
5.11停止较慢的搜索195
5.12小结196
第6章扩展搜索198
6.1使用自定义排序方法199
6.1.1针对地理位置排序方式进行文档索引199
6.1.2实现自定义的地理位置排序方式200
6.1.3访问自定义排序中的值203
6.2开发自定义的Collector204
6.2.1Collector基类205
6.2.2自定义CollectorBookLinkCollector206
6.2.3AllDocCollector类207
6.3扩展QueParser类208
6.3.1自定义QueParser的行为208
6.3.2禁用模糊查询和通配符查询209
6.3.3处理数值域的范围查询210
6.3.4处理日期范围211
6.3.5对已排序短语进行查询213
6.4自定义过滤器215
6.4.1实现自定义过滤器215
6.4.2搜索期间使用自定义过滤器216
6.4.3另一种选择:FilterQue类217
6.5有效载荷(Payloads)218
6.5.1分析期间生成有效载荷219
6.5.2搜索期间使用有效载荷220
6.5.3有效载荷和跨度查询223
6.5.4通过TermPositions来检索有效载荷223
6.6小结223
第2部Lucenee应用227
第7章使用Tika提取文本227
7.1Tika是什么228
7.2Tika的逻辑设计和PI230
7.3安装Tika231
7.4Tika的内置文本提取工具232
7.5编程实现文本提取234
7.5.1索引Lucene文档234
7.5.2Tika工具类237
7.5.3选择自定义分析器238
7.6Tika的局限238
7.7索引自定义的XML文件239
7.7.1使用SAX进行解析239
7.7.2使用ApacheCommonsDigester进行解析和索引242
7.8其他选择244
7.9小结245
第8章Lucene基本扩展246
8.1LukeLucene的索引工具箱247
8.1.1Overview标签页:索引的全局视图248
8.1.2浏览文档249
8.1.3使用QueParser进行搜索251
8.1.4FilesandPlugins标签页252
8.2分析器、语汇单元器和语汇单元过滤器253
8.2.1SnowballAnalyzer255
8.2.2Ngram过滤器256
8.2.3Shingle过滤器258
8.2.4获取捐赠分析器258
8.3高亮显示查询项259
8.3.1高亮显示模块259
8.3.2独立的高亮显示示例262
8.3.3使用CSS进行高亮显示处理263
8.3.4高亮显示搜索结果264
8.4FtVectorHighlighter类266
8.5拼写检查269
8.5.1生成提示列表269
8.5.2选择最佳提示271
8.5.3向用户展示搜索结果272
8.5.4一些加强拼写检查的考虑273
8.6引人注目的查询扩展功能274
8.6.1MoreLikeThis274
8.6.2FuzzyLikeThisQue275
8.6.3BoostingQue275
8.6.4TermsFilter276
8.6.5DuplicateFilter276
8.6.6RegexQue276
8.7构建软件捐赠模块(contribmodule)277
8.7.1源代码获取方式277
8.7.2contrib目录的Ant插件277
8.8小结278
第9章Lucene高级扩展279
9.1链式过滤器280
9.2使用BerkeleyDB存储索引282
9.3WordNet同义词284
9.3.1建立同义词索引285
9.3.2将WordNet同义词链接到分析器中287
9.4基于内存的快速索引289
9.5XMlQueParser:超出“onebox”的搜索接口289
9.5.1使用XmlQueParser291
9.5.2扩展XML查询语法295
9.6外围查询语言296
9.7SpatialLucene298
9.7.1索引空i间数据299
9.7.2搜索空间数据302
9.7.3SpatialLucene的性能特点304
9.8远程进行多索引搜索306
9.9灵活的QueParser309
9.10其他内容312
9.11小结313
第10章其他编程语言使用Lucene314
10.1移植入门315
10.1.1移植取舍316
10.1.2选择合适的移植版本317
10.2CLucene(C+)317
10.2.1移植目的318
10.2.2API和索引兼容319
10.2.3支持的平台321
10.2.4当前情况以及未来展望321
10.3LuceneNet(C#和其他NET编程语言)321
10.3.1API兼容323
10.3.2索引兼容324
10.4KinoSearch和Lucy(Perl)324
10.4.1KinoSearch325
10.4.2Lucy327
10.4.3其他Perl选项327
10.5Ferret(Ruby)328
10.6PHP329
10.6.1ZendFramework329
10.6.2PHPBridge330
10.7PyLucene(Python)330
10.7.1API兼容332
10.7.2其他Python选项332
10.8Solr(包含多种编程语言)332
10.9小结334
第11章Lucene管理和性能调优335
11.1性能调优336
11.1.1简单的性能调优步骤337
11.1.2测试方法338
11.1.3索引一搜索时延调优339
11.1.4索引操作吞吐量调优340
11.1.5搜索时延和搜索吞吐量调优344
11.2多线程和并行处理346
11.2.1使用多线程进行索引操作347
11.2.2使用多线程进行搜索操作351
11.3资源消耗管理354
11.3.1磁盘空间管理354
11.3.2文件描述符管理357
11.3.3内存管理361
11.4热备份索引364
11.4.1创建索引备份365
11.4.2恢复索引366
11.5常见错误367
11.5.1索引损坏367
11.5.2修复索引369
11.6小结369
第3部分案例分析373
第12章案例分析1:Krugle373
12.1Krugle介绍374
12.2应用架构375
12.3搜索性能376
12.4源代码解析377
12.5子串搜索378
12.6查询VS搜索381
12.7改进空间382
12.7.1FieldCache内存使用382
12.7.2合并索引382
12.8小结383
第13章案例分析2SIREn384
13.1SIREn介绍385
13.2SIREn优势385
13.2.1通过所有域进行搜索387
13.2.2一种高效词典388
13.2.3可变域388
13.2.4对多值域的高效处理388
13.3使用SIREn索引实体388
13.3.1数据模型389
13.3.2实现问题389
13.3.3索引概要390
13.3.4索引前的数据准备390
13.4使用SIREn搜索实体392
13.4.1搜索内容392
13.4.2根据单元限制搜索范围393
13.4.3将单元合并成元组393
13.4.4针对实体描述进行查询394
13.5在Solr中集成SIREn394
13.6Benchmark395
13.7小结397
第14章案例分析Linkedln398
14.1使用BoboBrowse进行分组搜索398
14.1.1BoboBrowse的设计400
14.1.2深层次分组搜索403
14.2使用Zoie进行实时搜索405
14.2.1Zoie架构406
14.2.2实时Vs近实时409
14.2.3文档与索引请求411
14.2.4自定义IndexReaders411
14.2.5与Lucene的近实时搜索进行比较412
14.2.6分布式搜索413
14.3小结415
附录A安装Lucene416
A1二进制文件安装416
A2运行命令行演示程序417
A3运行Web应用演示程序418
A4编译源代码419
A5排错420
附录BLucene索引格式421
B1逻辑索引视图421
B2关于索引结构422
B2.1理解多文件索引结构422
B2.2理解复合索引结构425
B2.3转换索引结构426
B3倒排索引427
B4小结430
附录CLucene/contribbenchmark431
C1运行测试脚本432
C2测试脚本的组成部分435
C2.1内容源和文档生成器438
C2.2查询生成器439
C3控制结构439
C4内置任务441
C4.1建立和使用行文件445
C4.2内置表任务446
C5评估搜索质量446
C6出错处理449
C7小结449
附录D资源450
D1Lucene知识库450
D2国际化450
D3语言探测451
D4项向量451
D5Lucene移植版本451
D6案例分析452
D7其他452
D8信息检索软件452
D9DougCutng的著作453
D9.1会议论文453
D9.2美国专利454