導航:首頁 > 源碼編譯 > 多線程源碼索引

多線程源碼索引

發布時間:2025-03-31 06:33:15

Ⅰ Lucene實戰的目錄

目錄
第1部分Lucene核心
第1章初識Lucene 3
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.1IndexWriter 25
1.5.2Directory 25
1.5.3Analyzer 26
1.5.4Document 26
1.5.5Field 27
1.6理解搜索過程的核心類 27
1.6.1IndexSearcher 27
1.6.2Term 28
1.6.3Query 28
1.6.4TermQuery 28
1.6.5TopDocs 29
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.4Reader、TokenStream和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域截取(Field truncation) 50
2.8近實時搜索(Near-real-time search) 51
2.9優化索引 51
2.10其他Directory子類 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解析用戶輸入的查詢表達式:QueryParser 73
3.2使用IndexSearcher類 76
3.2.1創建IndexSearcher類 76
3.2.2實現搜索功能 78
3.2.3使用TopDocs類 78
3.2.4搜索結果分頁 79
3.2.5近實時搜索 79
3.3理解Lucene的評分機制 81
3.3.1Lucene如何評分 81
3.3.2使用explain()理解搜索結果評分 83
3.4Lucene的多樣化查詢 84
3.4.1通過項進行搜索:TermQuery類 85
3.4.2在指定的項范圍內搜索:TermRangeQuery類 86
3.4.3在指定的數字范圍內搜索:NumericRangeQuery類 87
3.4.4通過字元串搜索:PrefixQuery類 88
3.4.5組合查詢:BooleanQuery類 88
3.4.6通過短語搜索:PhraseQuery類 91
3.4.7通配符查詢:WildcardQuery類 93
3.4.8搜索類似項:FuzzyQuery類 94
3.4.9匹配所有文檔:MatchAllDocsQuery類 95
3.5解析查詢表達式:QueryParser 96
3.5.1Query.toString方法 97
3.5.2TermQuery 97
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.9MatchAllDocsQuery 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.1索引過程中的分析 107
4.1.2QueryParser分析 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.1StopAnalyzer 122
4.3.2StandardAnalyzer 122
4.3.3應當採用哪種核心分析器 123
4.4近音詞查詢 123
4.5同義詞、別名和其他表示相同意義的詞 126
4.5.1創建SynonymAnalyzer 127
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段對應的reader 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使用非默認的locale方式進行排序 157
5.3使用MultiPhraseQuery 158
5.4針對多個域的一次性查詢 160
5.5跨度查詢 162
5.5.1跨度查詢的構建模塊:SpanTermQuery 165
5.5.2在域的起點查找跨度 166
5.5.3彼此相鄰的跨度 167
5.5.4在匹配結果中排除重疊的跨度 169
5.5.5SpanOrQuery類 170
5.5.6SpanQuery類和QueryParser類 171
5.6搜索過濾 172
5.6.1TermRangeFilter 173
5.6.2NumericRangeFilter 174
5.6.3FieldCacheRangeFilter 174
5.6.4特定項過濾 174
5.6.5使用QueryWrapperFilter類 175
5.6.6使用SpanQueryFilter類 175
5.6.7安全過濾器 176
5.6.8使用BooleanQuery類進行過濾 177
5.6.9PrefixFilter 178
5.6.10緩存過濾結果 178
5.6.11將filter封裝成query 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使用MultiSearch類 184
5.8.2使用ParallelMultiSearcher進行多線程搜索 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開發自定義的Collector 204
6.2.1Collector基類 205
6.2.2自定義Collector:BookLinkCollector 206
6.2.3AllDocCollector類 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有效載荷(Payloads) 218
6.5.1分析期間生成有效載荷 219
6.5.2搜索期間使用有效載荷 220
6.5.3有效載荷和跨度查詢 223
6.5.4通過TermPositions來檢索有效載荷 223
6.6小結 223
第2部分Lucene應用
第7章使用Tika提取文本227
7.1Tika是什麼 228
7.2Tika的邏輯設計和API 230
7.3安裝Tika 231
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使用Apache Commons Digester進行解析和索引 242
7.8其他選擇 244
7.9小結 245
第8章Lucene基本擴展246
8.1Luke:Lucene的索引工具箱 247
8.1.1Overview標簽頁:索引的全局視圖 248
8.1.2瀏覽文檔 249
8.1.3使用QueryParser進行搜索 251
8.1.4Files and Plugins標簽頁 252
8.2分析器、語匯單元器和語匯單元過濾器 253
8.2.1SnowballAnalyzer 255
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.4FastVector Highlighter類 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.1MoreLikeThis 274
8.6.2FuzzyLikeThisQuery 275
8.6.3BoostingQuery 275
8.6.4TermsFilter 276
8.6.5DuplicateFilter 276
8.6.6RegexQuery 276
8.7構建軟體捐贈模塊(contrib mole) 277
8.7.1源代碼獲取方式 277
8.7.2contrib目錄的Ant插件 277
8.8小結 278
第9章Lucene高級擴展279
9.1鏈式過濾器 280
9.2使用Berkeley DB存儲索引 282
9.3WordNet同義詞 284
9.3.1建立同義詞索引 285
9.3.2將WordNet同義詞鏈接到分析器中 287
9.4基於內存的快速索引 289
9.5XML QueryParser:超出「one box」的搜索介面 289
9.5.1使用XmlQueryParser 291
9.5.2擴展XML查詢語法 295
9.6外圍查詢語言 296
9.7Spatial Lucene 298
9.7.1索引空間數據 299
9.7.2搜索空間數據 302
9.7.3Spatial Lucene的性能特點 304
9.8遠程進行多索引搜索 306
9.9靈活的QueryParser 309
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.3Lucene-Net(C#和其他.NET編程語言) 321
10.3.1API兼容 323
10.3.2索引兼容 324
10.4KinoSearch和Lucy(Perl) 324
10.4.1KinoSearch 325
10.4.2Lucy 327
10.4.3其他Perl選項 327
10.5Ferret(Ruby) 328
10.6PHP 329
10.6.1Zend Framework 329
10.6.2PHP Bridge 330
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部分案例分析
第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章案例分析2:SIREn384
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中集成SIREn 394
13.6Benchmark 395
13.7小結 397
第14章案例分析3:LinkedIn398
14.1使用Bobo Browse進行分組搜索 398
14.1.1Bobo Browse的設計 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自定義IndexReaders 411
14.2.5與Lucene的近實時搜索進行比較 412
14.2.6分布式搜索 413
14.3小結 415
附錄A安裝Lucene416
A.1二進制文件安裝 416
A.2運行命令行演示程序 417
A.3運行Web應用演示程序 418
A.4編譯源代碼 419
A.5排錯 420
附錄BLucene索引格式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
附錄CLucene/contrib benchmark431
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.1Lucene知識庫 450
D.2國際化 450
D.3語言探測 451
D.4項向量 451
D.5Lucene移植版本 451
D.6案例分析 452
D.7其他 452
D.8信息檢索軟體 452
D.9Doug Cutting的著作 453
D.9.1會議論文 453
D.9.2美國專利 454

閱讀全文

與多線程源碼索引相關的資料

熱點內容
如何更改安卓手機所在地區 瀏覽:215
程序員負債120萬 瀏覽:78
階層pdf 瀏覽:378
linuxgit安裝配置 瀏覽:317
用源碼搭建app要改什麼 瀏覽:40
密碼學教程pdf 瀏覽:1
亞馬遜做的加密貨幣 瀏覽:79
怎麼搭建雲播伺服器 瀏覽:865
網站客服機器人源碼 瀏覽:314
2021程序員的出路 瀏覽:545
發行與承銷pdf 瀏覽:943
編譯器中的主要數據結構 瀏覽:894
7z解壓ziputf8 瀏覽:96
python微博相冊 瀏覽:104
雅思聽力速成pdf 瀏覽:126
程序員還貸 瀏覽:462
地基上柱子筋加密 瀏覽:649
郵件加密伺服器 瀏覽:734
手印直播源碼 瀏覽:933
php網站後台密碼忘記了 瀏覽:807