3dwoo大學簡體電腦書店
自己動手寫分布式搜索引擎
( 簡體 字)
作者:羅剛、崔智杰類別:1. -> 程式設計 -> 搜索引擎
出版社:清華大學出版社自己動手寫分布式搜索引擎 3dWoo書號: 47863
詢問書籍請說出此書號!
有庫存
NT售價: 295
出版日:9/1/2017
頁數:412
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302477082 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第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
本書介紹了分布式搜索引擎開發的原理與Java實現,主要包括全文檢索的原理與實現、分布式算法與代碼實現、SolrCloud和ElasticSearch的使用與原理等內容,并著重介紹了一種實現分布式中文搜索引擎的方法。
本書適合有Java程序設計基礎的開發人員或者對分布式搜索引擎技術感興趣的從業人員使用
搜索引擎成為人們獲取信息不可或缺的工具。大數據技術的發展推動了多機集群的分布式搜索引擎技術走向成熟。普通的機器就可以搭建分布式搜索引擎。一些開源的分布式搜索引擎系統在數據存儲、數據分析等方面的功能越來越強大。本書希望用通俗易懂的語言,讓任何對分布式搜索引擎技術感興趣的讀者都能夠有所收獲。
  本書的很多內容來源于搜索引擎、自然語言處理、金融等領域的項目開發和教學實踐。在此感謝開源軟件的開發者們,他們無私的工作豐富了本書的內容。
  本書的第1章介紹開發分布式搜索引擎所需要的基本算法;第2章介紹如何從頭開始自己動手寫一個簡單的全文檢索軟件包;第3章介紹Lucene的基本使用方法及其原理;第4章介紹使用JSP或者Struts 2開發搜索引擎用戶界面,以及用戶界面常用的Taglib;第5章介紹Solr實現分布式搜索引擎的解決方案——SolrCloud,以及它對SQL查詢的支持;第6章介紹如何使用基于Lucene的ElasticSearch實現分布式搜索引擎。
  鑒于ElasticSearch處于快速發展中,一些新版本的具體使用情況可以加入QQ群460405445,進行討論。
  本書配套的光盤中提供了相關的源代碼,有的來源于獵兔搜索多年的開發經驗積累,有的是經典算法實現。其中很多源代碼都可以直接用于項目實踐。
  本書適合需要具體實現搜索引擎的程序員使用,對于信息檢索等相關領域的研究人員也有一定的參考價值,同時獵兔搜索技術團隊已經開發出以本書為基礎的專門培訓課程和商業軟件。目前的一些分布式搜索引擎軟件仍然有很多功能有待完善,作者真誠地希望通過本書把讀者帶入分布式搜索引擎開發的大門并認識更多的朋友。
  感謝早期合著者、合作伙伴、員工、學員的支持,給我們提供了良好的工作基礎。在將來,希望我們的分布式搜索引擎代碼和技術能夠像雨后春筍一樣快速生長。
  本書由羅剛、崔智杰編著,另外參與本書編寫的還有張曉斐、石天盈、張繼紅、張進威、劉宇、何淑琴、任通通、高丹丹、徐友峰、孫寬,在此一并表示感謝。
  


編 者

pagetop