自己動手寫分散式搜尋引擎

本書介紹了分散式搜尋引擎開發的原理與Java實現,主要包括全文檢索的原理與實現、分散式算法與代碼實現、SolrCloud和ElasticSearch的使用與原理等內容,並著重介紹了一種實現分散式中文搜尋引擎的方法。 本書適合有Java程式設計基礎的開發人員或者對分散式搜尋引擎技術感興趣的從業人員使用。

出版信息,內容簡介,圖書目錄,

    出版信息

    自己動手寫分散式搜尋引擎
    作者:羅剛、崔智傑
    定價:59元
    印次:1-1
    ISBN:9787302477082
    出版日期:2017.09.01
    印刷日期:2017.09.13

      內容簡介

      本書介紹了分散式搜尋引擎開發的原理與Java實現,主要包括全文檢索的原理與實現、分散式算法與代碼實現、SolrCloud和ElasticSearch的使用與原理等內容,並著重介紹了一種實現分散式中文搜尋引擎的方法。

      圖書目錄

      第1章搜尋引擎 1
      1.1搜尋引擎基本模組 2
      1.2開發環境 3
      1.3搜尋引擎工作原理 4
      1.3.1網路爬蟲 5
      1.3.2全文索引 5
      1.3.3搜尋用戶界面 8
      1.3.4分散式計算 9
      1.3.5文本挖掘 9
      1.4算法基礎 9
      1.4.1折半查找 10
      1.4.2排序 10
      1.4.3最小生成樹 12
      1.5軟體工具 15
      1.6單元測試 15
      1.7本章小結 17
      1.8術語表 18
      第2章自己動手寫全文檢索 19
      2.1構建索引 22
      2.2生成索引檔案 23
      2.3讀入索引檔案 25
      2.4查詢 26
      2.5有限狀態機 29
      2.5.1運算 29
      2.5.2編輯距離有限狀態機 30
      2.6本章小結 32
      第3章Lucene的原理與套用 33
      3.1Lucene快速入門 34
      3.1.1創建索引 34
      3.1.2查詢索引庫 35
      3.1.3創建文檔索引 36
      3.1.4查詢文檔索引 36
      3.2創建和維護索引庫 37
      3.2.1設計索引庫結構 37
      3.2.2創建索引庫 38
      3.2.3向索引庫中添加索引文檔 40
      3.2.4刪除索引庫中的索引文檔 43
      3.2.5更新索引庫中的索引文檔 44
      3.2.6關閉索引庫 45
      3.2.7索引的最佳化與合併 45
      3.2.8靈活索引 46
      3.2.9索引檔案格式 47
      3.2.10定製索引存儲結構 49
      3.2.11寫索引集成到爬蟲 54
      3.2.12多執行緒寫索引 56
      3.2.13分發索引 58
      3.2.14修復索引 61
      3.3查找索引庫 61
      3.3.1查詢過程 61
      3.3.2常用查詢 64
      3.3.3基本詞查詢 65
      3.3.4模糊匹配 65
      3.3.5布爾查詢 67
      3.3.6短語查詢 69
      3.3.7跨度查詢 71
      3.3.8FieldScoreQuery 74
      3.3.9排序 77
      3.3.10使用Filter篩選搜尋結果 81
      3.3.11使用Collector篩選搜尋
      結果 82
      3.3.12遍歷索引庫 85
      3.3.13關鍵字高亮顯示 88
      3.3.14列合併 91
      3.3.15關聯內容(BlockJoinQuery) 92
      3.3.16查詢大容量索引 94
      3.4讀寫並發 95
      3.5Lucene深入介紹 95
      3.5.1整體結構 96
      3.5.2索引原理 97
      3.5.3文檔值 100
      3.5.4FST 102
      3.6查詢語法與解析 102
      3.6.1JavaCC 104
      3.6.2生成一個查詢解析器 114
      3.6.3簡單的查詢解析器 114
      3.6.4靈活的查詢解析器 114
      3.7檢索模型 119
      3.7.1向量空間模型 121
      3.7.2DFR 125
      3.7.3BM25機率模型 130
      3.7.4BM25F機率模型 136
      3.7.5統計語言模型 138
      3.7.6相關性反饋 140
      3.7.7隱含語義索引 140
      3.7.8學習評分 141
      3.7.9查詢與相關度 142
      3.7.10使用Payload調整相關性 142
      3.8查詢原理 146
      3.8.1布爾匹配 147
      3.8.2短語查詢 150
      3.8.3索引統計 150
      3.8.4相關性 152
      3.9分析文本 155
      3.9.1Analyzer 156
      3.9.2TokenStream 162
      3.9.3定製Tokenizer 164
      3.9.4重用Tokenizer 166
      3.9.5有限狀態轉換 167
      3.9.6索引數值列 168
      3.9.7檢索結果排序 171
      3.9.8處理價格 171
      3.10Lucene中的壓縮算法 172
      3.10.1變長壓縮 172
      3.10.2Gamma 174
      3.10.3PForDelta 176
      3.10.4VSEncoding 178
      3.10.5前綴壓縮 179
      3.10.6差分編碼 180
      3.10.7靜態索引裁剪 182
      3.11搜尋中文 182
      3.11.1Lucene切分原理 185
      3.11.2Lucene中的Analyzer 186
      3.11.3自己寫Analyzer 188
      3.11.4Lietu中文分詞 191
      3.11.5字詞混合索引 191
      3.12搜尋英文 196
      3.12.1英文分詞 196
      3.12.2詞性標註 199
      3.12.3原型化 201
      3.13索引資料庫中的文本 202
      3.14最佳化使用Lucene 204
      3.14.1系統最佳化 204
      3.14.2查詢最佳化 205
      3.14.3實現時間加權排序 207
      3.14.4詞性標註 210
      3.14.5個性化搜尋 213
      3.15實時搜尋 213
      3.16語義搜尋 215
      3.16.1發現同義詞 215
      3.16.2垂直領域同義詞 219
      3.16.3同義詞擴展 219
      3.16.4語義標註 225
      3.17本章小結 225
      3.18術語表 226
      第4章搜尋引擎用戶界面 227
      4.1實現Lucene搜尋 228
      4.1.1測試搜尋功能 228
      4.1.2載入索引 229
      4.2搜尋頁面設計 231
      4.2.1Struts2實現的搜尋界面 232
      4.2.2用於顯示搜尋結果的
      Taglib 234
      4.2.3實現翻頁 235
      4.3實現搜尋接口 238
      4.3.1編碼識別 238
      4.3.2布爾搜尋 241
      4.3.3指定範圍搜尋 241
      4.3.4搜尋結果排序 242
      4.3.5索引快取與更新 243
      4.4實現分類統計視圖 249
      4.4.1單值列分類統計 255
      4.4.2側鑽 256
      4.5實現相似文檔搜尋 257
      4.6實現AJAX搜尋聯想詞 259
      4.6.1估計查詢詞的文檔頻率 259
      4.6.2搜尋聯想詞總體結構 259
      4.6.3伺服器端處理 260
      4.6.4瀏覽器端處理 265
      4.6.5拼音提示 267
      4.6.6部署總結 267
      4.7推薦搜尋詞 268
      4.7.1挖掘相關搜尋詞 268
      4.7.2使用多執行緒計算相關
      搜尋詞 270
      4.8查詢意圖理解 271
      4.8.1拼音搜尋 271
      4.8.2無結果處理 272
      4.9集成其他功能 272
      4.9.1拼寫檢查 272
      4.9.2分類統計 276
      4.9.3相關搜尋 281
      4.9.4再次查找 284
      4.9.5搜尋日誌 284
      4.10查詢分析 286
      4.10.1歷史搜尋詞記錄 286
      4.10.2日誌信息過濾 286
      4.10.3信息統計 287
      4.10.4挖掘日誌信息 289
      4.10.5查詢詞意圖分析 290
      4.11部署網站 290
      4.11.1部署到Web伺服器 290
      4.11.2防止攻擊 292
      4.12手機搜尋界面 295
      4.13本章小結 296
      第5章Solr分散式搜尋引擎 297
      5.1Solr簡介 298
      5.2Solr基本用法 299
      5.2.1Solr伺服器端的配置與中文
      支持 300
      5.2.2數據類型 304
      5.2.3解析器 306
      5.2.4把數據放進Solr 307
      5.2.5刪除數據 312
      5.2.6查詢語法 313
      5.3使用SolrJ 313
      5.3.1Solr客戶端與搜尋界面 313
      5.3.2Solr索引庫的查找 315
      5.3.3分類統計 317
      5.3.4高亮 319
      5.3.5同義詞 322
      5.3.6嵌入式Solr 322
      5.3.7Spring實現的搜尋界面 323
      5.3.8索引分發 331
      5.3.9Solr搜尋最佳化 333
      5.4從FASTSearch移植到Solr 336
      5.5Solr擴展與定製 337
      5.5.1預設查詢 337
      5.5.2外掛程式 338
      5.5.3Solr中字詞混合索引 338
      5.5.4相關檢索 340
      5.5.5搜尋結果去重 341
      5.5.6定製輸入輸出 344
      5.5.7聚類 348
      5.5.8分散式搜尋 348
      5.5.9分散式索引 352
      5.5.10SolrJ查詢分析器 353
      5.5.11擴展SolrJ 360
      5.5.12擴展Solr 361
      5.5.13日文搜尋 364
      5.5.14查詢Web圖 365
      5.6SolrNet 367
      5.6.1使用SolrNet實現全文搜尋 367
      5.6.2實現原理 370
      5.6.3擴展SolrNet 371
      5.7Solr的PHP客戶端 373
      5.8Solr的其他客戶端 376
      5.9為網站增加搜尋功能 376
      5.10SolrCloud 377
      5.10.1Zab協定 377
      5.10.2ZooKeeper 377
      5.10.3使用SolrCloud 379
      5.10.4SQL查詢 380
      5.11Solr原理 381
      5.11.1支持Solr的中文分詞 381
      5.11.2快取技術 383
      5.12本章小結 384
      第6章ElasticSearch分散式搜尋
      引擎 387
      6.1安裝 389
      6.2搜尋集群 390
      6.2.1Zen發現機制 390
      6.2.2JGroups 391
      6.3創建索引 393
      6.4Java客戶端接口 396
      6.4.1創建索引 398
      6.4.2插入數據 398
      6.4.3索引庫結構 400
      6.5查詢 401
      6.6高亮顯示 405
      6.7分頁 406
      6.8中文搜尋 407
      6.8.1中文AnalyzerProvider 407
      6.8.2字詞混合索引 409
      6.9分組統計 412
      6.10與爬蟲集成 413
      6.11Percolate 413
      6.12許可權 414
      6.13SQL支持 415
      6.14本章小結 419

      相關詞條

      熱門詞條

      聯絡我們