1部分Lucene核心
第1章遇見Lucene 3
1.1應對信息爆炸4
1.2什麽是Lucene 5
Lucene能做什麽6
1 . 2 . 2 Lucene 7的歷史
1.3 Lucene和搜索組件9
1.3.1指數成分10
1.3.2搜索組件13
1.3.3搜索程序的其他模塊16
1 . 3 . 4 Lucene和應用程序18之間的集成點
1.4 Lucene實戰:程序示例18
1.4.1創建索引19
1.4.2搜索索引22
1.5理解索引進程的核心類25
1.5.1索引編寫器25
1.5.2目錄25
1.5.3分析儀26
1.5.4文件26
1.5.5字段27
1.6理解搜索過程的核心類27
1.6.1索引搜索器27
1.6.2期限28
1.6.3查詢28
1.6.4 TermQuery 28
1.6.5 TopDocs 29
1.7匯總29
第二章建築索引30
2.1 Lucene如何對搜索內容建模31
2.1.1文檔和域31
2.1.2靈活架構32
2.1.3反規格化)32
2.2了解索引過程33
2 . 2 . 1提取文本和創建文檔33
文件分析34
2.2.3向索引添加文檔34
2.3基本索引操作35
將文件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.4讀取器、令牌流和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加權標準)47
2.6索引號、日期和時間48
1索引號48
索引日期和時間49
2.7字段截斷)50
2.8近實時搜索51
2.9優化指數51
2.10其他目錄小類52
2.11並發、線程安全和鎖定機制55
2.11.1線程安全和多虛擬機安全55
2.11.2通過遠程文件系統訪問索引56
2.11.3索引鎖定機制57
2.12調試索引59
2.13高級索引概念60
使用IndexReader刪除文檔61。
2.13.2恢復已刪除文檔的已用磁盤空間62
2.13.3緩沖和刷新62
2.13.4索引提交63
2.13.5 ACID交易和指數連續性65
2.13.6合並段66
2.14匯總68
第3章為應用程序添加搜索功能70
3.1實現簡單搜索功能71
3.1.1搜索特定項目72
3.1.2分析用戶輸入的查詢表達式:QueryParser 73
3.2使用索引搜索器類別76
3.2.1創建索引搜索器類別76
3.2.2實現搜索功能78
3.2.3使用TopDocs class 78
3.2.4搜索結果的分頁
3.2.5近實時搜索79
3.3了解Lucene 81的評分機制
3 . 3 . 1 Lucene如何得分81?
3.3.2使用explain()了解搜索結果得分83
3.4 Lucene的多樣化查詢84
3.4.1按項目搜索:$ TermQuery Class 85
3.4.2在指定的項目範圍內搜索:TermRangeQuery Class 86
3.4.3在指定的數字範圍內搜索:NumericRangeQuery class 87
3.4.4按字符串搜索:前綴查詢類88
3.4.5組合查詢:BooleanQuery類88
3.4.6通過短語搜索:短語查詢類91
通配符查詢類別93
3.4.8搜索相似項目:模糊查詢類別94
3.4.9匹配所有文檔:MatchAllDocsQuery類95
3.5解析查詢表達式:QueryParser 96
3.5.1 Query.toString方法97
術語查詢97
3.5.3物料範圍查詢98
數字範圍搜索和日期範圍搜索99
3.5.5前綴查詢和通配符查詢99
布爾運算符100
3.5.7短語查詢100
3.5.8模糊查詢101
MatchAllDocsQuery 102
3.5.10分組查詢102
3.5.11域選擇103
3.5.12為子查詢設置權重103。
3.5.13我壹定要用QueryParse 103嗎?
3.6摘要104
第4章Lucene 105的分析過程
4.1使用分析儀106
4.1.107過程中的分析
4.1.2 QueryParser分析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.1停止分析器122
標準分析儀122
4.3.3應采用哪種巖心分析儀123?
4.4近音詞查詢123
4.5同義詞、別名和其他具有相同含義的詞126
4.5.1創建同義詞分析器127
4.5.2顯示詞匯單元131的位置。
4.6詞幹分析132
4.6.1 StopFilter,預留空間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.1 Unicode和字符編碼139
4.8.2非英語語言分析140
4.8.3字符規範化處理140
4.8.4亞洲語言分析141
4.8.5關於非英語語言分析的其他問題143
4.9 Nutch分析144
4.10匯總146
第5章高級搜索技術147
5.1 Lucene域緩存148
5.1.1為所有文檔加載域值149。
對應於段落5.1.2的閱讀器149。
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使用非默認區域設置對157進行排序。
5.3使用multiprasequery 158
5.4多域壹次性查詢160
5.5跨度查詢162
5.5.1 Span查詢構建模塊:SpanTermQuery 165
5.5.2求域開頭的跨度166。
5.5.3相鄰跨度167
5.5.4從匹配結果中排除169的重疊跨度。
SpanOrQuery class 170
SpanQuery類和QueryParser類171
5.6搜索過濾172
5.6.1終端測距過濾器173
數字範圍過濾器174
5 . 6 . 3 FieldCacheRangeFilter 174
5.6.4特定項目過濾174
5.6.5使用QueryWrapperFilter類175
使用SpanQueryFilter class 175。
安全過濾器176
5.6.8使用BooleanQuery類177進行過濾
前置過濾器178
5.6.10緩存過濾結果178
5.6.11將過濾器封裝為查詢179。
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使用多重搜索類184。
5.8.2使用ParallelMultiSearcher 186進行多線程搜索
5.9使用術語向量186
5.9.1搜索相似書籍187
5.9.2屬於哪壹類?190.
5.9.3端子193級
5.10用FieldSelector加載域194。
5.11停止慢速搜索195
5.12匯總196
第六章擴展搜索198
6.1使用自定義排序方法199。
6.1.1基於地理位置排序方法的文檔索引199
6.1.2自定義地理位置排序模式200的實現
6.1.3訪問自定義排序中的值203
6.2開發自定義收集器204
收集器基本類別205
6.2.2自定義收集器:BookLinkCollector 206
AllDocCollector類207
6.3擴展QueryParser類208
6.3.1自定義QueryParser行為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另壹個選項:FilterQuery類217。
6.5有效載荷)218)
6.5.1分析期間生成的有效載荷219
6.5.2搜索期間使用的有效載荷220
6.5.3有效載荷和跨度查詢223
6.5.4通過$回收有效載荷位置223
6.6摘要223
第2部分Lucene應用程序
第7章使用Tika提取文本227
7.1提卡228是什麽
7.2 tika和API 230的邏輯設計
7.3安裝Tika 231
7.4 Tika的內置文本提取工具232
7.5實現文本提取的編程234
7.5.1索引Lucene文檔234
237級Tika工具
7.5.3選擇定制分析儀238
7.6 tika 238的限制
7.7索引自定義XML文件239
7.7.1用SAX 239解析
7.7.2使用Apache Commons消化器進行解析和索引242
7.8其他選擇244
7.9摘要245
第八章Lucene基本擴展246
8.1 Luke: Lucene的索引工具箱247
8.1.1總覽頁簽:索引248的全局視圖
8.1.2瀏覽文檔249
8.1.3使用QueryParser 251進行搜索
8.1.4文件和插件選項卡252
8.2分析器、詞匯單元和詞匯單元過濾器253
雪球分析儀255
Ngram過濾器256
瓦片式過濾器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.4 FastVector熒光筆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.1更多信息
8.6.2模糊相似查詢275
8.6.3增強查詢275
術語過濾器276
8.6.5重復過濾器276
RegexQuery 276
8.7構建軟件捐贈模塊(contrib模塊)277
8.7.1源代碼獲取方法277
8 . 7 . 2 contrib目錄的Ant插件277
8.8摘要278
第九章Lucene高級擴展279
9.1鏈式過濾器280
9.2使用Berkeley DB存儲索引282
9.3 WordNet同義詞284
建立同義詞索引285
9.3.2將WordNet同義詞鏈接到Analyzer 287
9.4基於內存的快速索引289
9.5 XML QueryParser:超越“壹個框”的搜索界面289
9.5.1使用XmlQueryParser 291。
9.5.2擴展XML查詢語法295
9.6外圍查詢語言296
9.7空間Lucene 298
9.7.1索引空間數據299
9.7.2搜索空間數據302
9.7.3空間Lucene 304的性能特征
9.8遠程多索引搜索306
9.9靈活的QueryParser 309
9.10其他內容312
9.11匯總313
第10章其他編程語言使用Lucene 314。
10.1移植315簡介
10.1.1移植選擇316
10.1.2選擇合適的移植版本317。
10.2氯新烯(C++) 317
移植目的318
10.2.2 API和索引兼容性319
10.2.3支持的平臺
10.2.4現狀及未來展望321
10.3 Lucene-Net(C#等。NET編程語言)321
10.3.1 API兼容性323
10.3.2索引兼容性324
10.4 KinoSearch和Lucy(Perl) 324
1基諾搜索325
露西327
10.4.3其他Perl選項327
10.5雪貂(紅寶石)328
10.6 PHP 329
10.6.1 Zend框架329
10.6.2 PHP網橋330
10.7 PyLucene(Python) 330
10.7.1 API兼容性332
10.7.2其他Python選項332
10.8 Solr(包括多種編程語言)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
第三部分案例分析
第12章案例分析1:克魯格373
克魯格簡介374
12.2應用程序架構375
12.3搜索性能376
12.4源代碼分析377
12.5子字符串搜索378
12.6查詢VS搜索381
12.7改善空間382
12.7.1字段緩存內存使用情況382
12.7.2綜合指數382
12.8匯總383
第13章案例分析2:魔女384
13.1警報器簡介385
警笛優勢385
13.2.1搜索所有域387
壹個高效的字典388
13.2.3可變字段388
13.2.4多值域的高效處理388
13.3帶警報器的索引實體388
13.3.1數據模型389
13.3.2實施問題389
13.3.3指數匯總390
13.3.4索引前的數據準備390
13.4使用警報器392搜索實體
13 . 4 . 1搜索內容392
13.4.2按單元393限制搜索範圍
13.4.3將單元格組合成元組393。
13.4.4實體描述查詢394
13.5在Solr中集成警報器394
13.6基準395
13.7摘要397
第14章案例分析3: LinkedIn 398
14.1使用Bobo瀏覽的群組搜索398
設計14.1.1波波瀏覽400
14.1.2深度分組搜索403
14.2使用Zoie 405進行實時搜索
14.2.1佐伊架構406
實時與近實時409
14.2.3文件和索引請求411
14.2.4自定義索引閱讀器411
14.2.5對比Lucene 412的近實時搜索。
14.2.6分布式搜索413
14.3匯總415
附錄A Lucene 416的安裝
A.1二進制文件安裝416
A.2運行命令行演示程序417
A.3運行Web應用程序演示程序418
A.4編譯源代碼419
A.5錯誤的安排
附錄B Lucene索引格式421
B.1邏輯索引視圖421
B.2關於索引結構422
B.2.1了解多文件索引結構422
B.2.2了解復合指數結構425
B.2.3轉換指數結構426
B.3反向指數427
B.4摘要430
附錄C Lucene/Contib基準測試431
C.1運行測試腳本432
C.2測試腳本的組成部分435
C.2.1內容源和文檔生成器438
C.2.2查詢生成器439
C.3控制結構439
C.4內置任務441
C.4.1創建和使用行文件445
C.4.2內置報表任務446
C.5評估搜索質量446
C.6錯誤處理449
C.7概要449
附錄d資源450
D.1 Lucene知識庫450
D.2國際化
D.3語言檢測451
D.4項向量451
D.5 Lucene移植版本451
D.6案例研究452
D.7其他
D.8信息檢索軟件452
D.9道格·卡丁作品453
D.9.1會議文件453
D.9.2美國專利454