前言 3
第1章 搜索引擎與Lucene 7
1.1搜索引擎與Lucene簡介 7
1.1.1 搜索引擎分類 7
1.1.2 Lucene項目簡介 12
1.1.3 其他搜索引擎開發包介紹 12
1.2 Lucene的系統架構 15
1.2.1 Lucene最簡示例 15
1.2.2 Lucene采用的索引結構 21
1.2.3 Lucene軟件包架構 22
1.3 本書的章節導航 23
第2章 文檔邏輯視圖與文本分析 25
2.1 文檔邏輯視圖 25
2.2 Lucene的文本分析過程簡介 29
2.3 空格解析器(WhitespaceAnalyzer) 31
2.3.1 空格分詞器(WhitespaceTokenizer) 31
2.3.2 Token(標誌) 34
2.4 標準解析器(StandardAnalyzer) 34
2.4.1 標準分詞器(StandardTokenizer) 37
2.4.2 標準過濾器(StandardFilter) 39
2.5 打造自己的解析器 41
2.5.1 常用的中文分詞法 41
2.5.2 對CJKAnalyzer 的分析 42
2.5.3 構造自己的解析器 43
第3章 Lucene創建索引之1(段索引方式與倒排索引結構) 54
3.1 倒排(inverted index)結構與段索引(segment index)方式 54
3.2 索引寫入過程概述 66
第4章 Lucene創建索引之2(內存中創建索引) 69
4.1 創建Document層面索引 70
4.2 寫入field信息 74
4.3 文件倒排過程 77
4.4 填寫postingTable 84
4.5 postingTable的排序過程 89
4.6 寫入Field名字文件(.fnm文件) 93
4.7 寫入field信息文件(.fdt,.fdx文件) 96
4.8寫入頻率與位置文件(.frq與.prx文件) 102
4.9 TermVector方式寫入索引(.tvf,.tvd與.tvx文件) 111
4.10字典文件(.tis與.tii文件) 123
4.11寫入規格化文件 129
第5章 Lucene創建索引之3(索引合並過程) 131
5.1 Document層面的合並過程。 133
5.2 Field與term的合並過程 143
5.2.1 Field信息合並過程 144
5.2.2 Term信息合並過程 147
5.2.3合並Norm信息 167
5.3 Lunece索引采用的壓縮算法 170
5.4小結 173
第6章 Lucene查詢過程之1(查詢模型與引擎預熱) 175
6.1查詢模型 175
6.1.1向量(Vector)模型 175
6.1.2布爾(Boolean)模型 176
6.1.3 Lucene的查詢(query)評分(score)方式 177
6.2 查詢簡單示例 178
6.3 引擎預熱 182
6.3.1 獲得並打開索引文件 183
6.3.2 獲得segment信息 187
6.3.3 FSDirectory打開索引過程 207
6.3.4 獲得field信息 213
6.3.5 獲得Term信息 218
第7章 Lucene查詢過程之2(查詢解析與語法) 225
7.1 構建查詢解析器(QueryParser) 225
7.2 Lucene的查詢語法 225
7.2.1項(Term)查詢 226
7.2.2 域(Fields) 226
7.2.3詞條查詢(Term Modifiers) 227
7.2.4 布爾操作符(Boolean Operators) 229
7.2.5 組合查詢(Grouping) 231
7.2.6針對Field的組合查詢(Field Grouping Field) 231
7.2.7 Escaping Special Characters(轉意字符) 231
7.3 Lucene查詢語法樹的構建過程 231
7.3.1 過程分析 232
7.3.2 語法樹分析實例 237
第8章 Lucene查詢過程之3(相似度匹配與算法分析) 239
8.1 查詢與相似度計算 239
8.1.1 查詢器(Searcher)的查詢過程 240
8.1.2 查詢語句的權重計算 242
8.1.3 獲得TopK個document 260
8.2 Lucene查詢算法分析 294
8.2.1相似度計算簡單實例(tf×idf) 294
8.2.2 線性相似度計算 296
8.2.3 基於倒排索引的相似度計算 297
8.2.4 Lucene的相似度計算 299
第9章 Lucene標引與查詢全程示例 305
9.1實例描述 305
9.2 建立索引過程 306
9.2.1 選擇文檔中建立索引的field 306
9.2.2 選擇field錄入方式 307
9.2.3 生成segment文件 307
9.2.4 生成fields文件 307
9.2.5 posting文件 309
9.2.6 合並segment index生成index文件 313
9.2.6 合並後的文件關系 326
9.3 查詢過程 327
第10章 Lucene的常用應用場景分析 329
10.1 對大型XML文檔集合的檢索 329
10.1.1 都柏林文件介紹 329
元素名稱:題名(Title) 329
元素名稱: 創建者(Creator) 329
10.1.2 XML分析器介紹 332
10.1.3 Lucene在大型XML文件應用 333
10.2 MultiSearcher的應用 340
10.2.1 MultiSearcher的應用 341
10.2.2 ParallelMultiSearcher的應用 348
第11章 利用Lucene構建分布式搜索引擎 350
11.1 分布式文件系統和Hadoop 350
11.1.1 Hadoop文件系統體系結構 351
11.1.2 系統交互過程:單壹NameNode方式 351
11.1.3 系統組件描述 352
11.2 Nutch簡單剖析 360
11.3 體驗Nutch 363
資源的抓取 364
附錄A TestIndexWriterMerging 372
附錄B TestDocumentWriter與DocHelper 374