注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計其他編程語言/工具征服Ajax+Lucene構(gòu)建搜索引擎

征服Ajax+Lucene構(gòu)建搜索引擎

征服Ajax+Lucene構(gòu)建搜索引擎

定 價:¥42.00

作 者: 李剛編著
出版社: 人民郵電出版社
叢編項: 征服Ajax系列叢書
標(biāo) 簽: 綜合 語言與開發(fā)工具 程序語言與軟件開發(fā) 計算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787115147073 出版時間: 2006-04-01 包裝: 膠版紙
開本: 小16開 頁數(shù): 369 字?jǐn)?shù):  

內(nèi)容簡介

本書分Ajax和Lucene兩部分,共16章,內(nèi)容涵蓋了JavaScript的基礎(chǔ)、層疊樣式表CSS、DOM與JavaScript、AjaX工作流程、Ajax實(shí)例、Ajax的安全問題與性能測試、Lucene基礎(chǔ)、用Lucene來建立索引、Lucene搜索、Lucene的分析器、高級搜索技巧、Lucene性能測試、Lucene的中文問題以及Lucene的工具箱SandBox。本書最大的特點(diǎn)在于“理論結(jié)合實(shí)踐”,既簡明扼要地講解了理論知識,又提供了豐富的示例程序,力求使讀者在掌握了理論知識的同時能夠通過閱讀示例代碼加深理解。本書適合于有一定Web開發(fā)基礎(chǔ)的Java程序員和對Ajax與Lucene感興趣的開發(fā)人員。本書分為兩大部分共16章。第1部分為Ajax的相關(guān)知識,共分7章。這部分內(nèi)容包括Ajax入門體驗、JavaScript關(guān)鍵技術(shù)、CSS表示技術(shù)、DOM技術(shù)、XmlHttpRequest對象和Ajax的工作流程、經(jīng)典實(shí)例以及頁面編程中的性能和安全性問題等內(nèi)容,這部分內(nèi)容旨在幫助讀者快速掌握Ajax技術(shù)。第2部分為Lucene的相關(guān)知識,共分9章。這9章的內(nèi)容包括Lucene基本概念、入門實(shí)例、建立索引、通過索引來搜索文件、使用分析器、高級搜索技巧、性能測試、中文問題,以及Lucene中的一些實(shí)用工具。

作者簡介

暫缺《征服Ajax+Lucene構(gòu)建搜索引擎》作者簡介

圖書目錄

第1章 來點(diǎn)Ajax的感覺 1
1.1  兩個例子 1
1.1.1  百度地圖 1
1.1.2  Google Suggest 2
1.1.3  體會Ajax 3
1.2  一個傳統(tǒng)的Web注冊程序 5
1.2.1  運(yùn)行效果預(yù)覽 5
1.2.2  注冊Servlet的代碼 6
1.2.3  相關(guān)JSP頁面代碼 8
1.3  使用Ajax實(shí)現(xiàn)的Web注冊程序—DynaCheckRegister 10
1.3.1  運(yùn)行效果預(yù)覽 10
1.3.2  注冊Servlet的代碼 11
1.3.3  相關(guān)JSP頁面代碼 13
1.4  兩種技術(shù)的比較 16
1.4.1  效果 17
1.4.2  涉及到的知識 17
1.5  總結(jié) 17
第2章 JavaScript基礎(chǔ) 18
2.1  瀏覽器對象模型 18
2.1.1  查看瀏覽器信息—Navigator對象 19
2.1.2  分割瀏覽器窗口—Frame對象 20
2.1.3  訪問加載在窗口中的文檔的URL—location對象 22
2.1.4  查看訪問過的網(wǎng)址列表—history對象 23
2.1.5  取得計算機(jī)的各種顯示特性—screen對象 25
2.2  函數(shù) 26
2.3  與用戶交互的基本方法 30
2.3.1  提示對話框—alert()方法 30
2.3.2  確認(rèn)信息對話框—confirm()方法 31
2.3.3  響應(yīng)用戶輸入對話框—prompt()方法 32
2.4  事件響應(yīng)與編程 33
2.4.1  響應(yīng)鼠標(biāo)事件 35
2.4.2  響應(yīng)鍵盤事件 36
2.4.3  控制事件—event對象 36
2.5  JavaScript核心對象 39
2.5.1  數(shù)組對象 39
2.5.2  Math對象 41
2.5.3  String對象 42
2.6  面向?qū)ο蟮腏avaScript 43
2.6.1  JavaScript中的對象 43
2.6.2  使用JSON創(chuàng)建數(shù)組和對象圖 45
2.6.3  構(gòu)造函數(shù) 47
2.6.4  使屬性和函數(shù)可以關(guān)聯(lián)到對象—prototype 49
2.6.5  JavaScript對象反射 50
2.6.6  方法和函數(shù) 52
2.6.7  Ajax的事件處理和函數(shù)環(huán)境 54
2.7  胖客戶端(Rich Client) 56
2.7.1  什么是胖客戶端 56
2.7.2  Ajax解決的問題 56
2.8  總結(jié) 58
第3章 層疊樣式表CSS 59
3.1  使用CSS的原因 59
3.1.1  樣式與內(nèi)容的分離 60
3.1.2  可讀性 60
3.1.3  一次性寫入 60
3.1.4  CSS的版本與瀏覽器的兼容性 60
3.2  CSS基礎(chǔ) 61
3.2.1  樣式表的基礎(chǔ) 61
3.2.2  內(nèi)部樣式表 63
3.2.3  外部樣式表 64
3.2.4  創(chuàng)建和使用樣式類 67
3.3  常用的樣式表屬性 68
3.3.1  字體屬性 68
3.3.2  顏色和背景屬性 70
3.3.3  文字屬性 72
3.3.4  邊框?qū)傩?73
3.3.5  其他 75
3.4  總結(jié) 77
第4章 DOM與JavaScript 78
4.1  DOM文檔對象模型 78
4.1.1  什么是DOM 78
4.1.2  DOM的層次結(jié)構(gòu) 79
4.2  Document對象 80
4.2.1  Document對象的屬性 81
4.2.2  document對象的方法 83
4.3  JavaScript訪問HTML表單 85
4.3.1  (表單)form基礎(chǔ) 85
4.3.2  表單對象 87
4.3.3  使用單行文本框?qū)ο?90
4.3.4  使用密碼框 92
4.3.5  使用多行文本框 93
4.3.6  使用單選框 95
4.3.7  使用復(fù)選框 97
4.3.8  使用下拉菜單 98
4.3.9  使用鏈接對象 100
4.3.10  使用image(圖像)對象 102
4.3.11  DOM事件處理 104
4.4  JavaScript訪問XML 106
4.4.1  第一個簡單的例子 107
4.4.2  使用JavaScript讀取XML文檔 108
4.5  總結(jié) 112
第5章  Ajax工作流程 113
5.1  概述 113
5.2  XMLHttpRequest對象 114
5.2.1  認(rèn)識XMLHttpRequest對象 114
5.2.2  XMLHttprequest對象的方法 116
5.2.3  XMLHttpRequest對象的屬性 117
5.2.4  使用XMLHttprequest對象向服務(wù)器端發(fā)送請求 117
5.3  監(jiān)視response的狀態(tài) 119
5.3.1  回調(diào)函數(shù)—監(jiān)視瀏覽器的狀態(tài) 119
5.3.2  操縱返回的數(shù)據(jù) 120
5.4  一個完整的實(shí)例 121
5.5  詳解DynaCheckRegister注冊程序 125
5.5.1  頁面腳本 125
5.5.2  實(shí)現(xiàn)原理 129
5.6  總結(jié) 134
第6章  Ajax實(shí)例 135
6.1  提示等待 135
6.1.1  原理分析 135
6.1.2  客戶端代碼總體說明 136
6.1.3  客戶端代碼—創(chuàng)建主框架 136
6.1.4  客戶端代碼—實(shí)現(xiàn)函數(shù)處理 136
6.1.5  客戶端代碼—創(chuàng)建數(shù)據(jù)顯示的頁面 138
6.1.6  服務(wù)器端代碼—處理請求 139
6.2  級聯(lián)下拉框 140
6.2.1  原理分析 141
6.2.2  客戶端代碼說明 141
6.2.3  服務(wù)器端代碼說明 144
6.3  Google suggest的例子 146
6.3.1  原理分析 147
6.3.2  客戶端代碼總體說明 148
6.3.3  客戶端代碼—創(chuàng)建用戶進(jìn)行查詢的頁面 149
6.3.4  客戶端代碼—網(wǎng)頁界面顯示樣式的設(shè)計 150
6.3.5  客戶端代碼—程序運(yùn)行腳本的實(shí)現(xiàn) 152
6.3.6  服務(wù)器端代碼總體說明 163
6.3.7  服務(wù)器端代碼—創(chuàng)建實(shí)體 163
6.3.8  服務(wù)器端代碼—創(chuàng)建數(shù)據(jù)庫連接 164
6.3.9  服務(wù)器端代碼—實(shí)現(xiàn)業(yè)務(wù)邏輯處理 165
6.3.10  服務(wù)器端代碼—實(shí)現(xiàn)請求處理 166
6.3.11  性能問題 168
6.4  Slider(滑塊) 168
6.4.1  原理分析 168
6.4.2  客戶端代碼總體說明 169
6.4.3  客戶端代碼—創(chuàng)建頁面的框架 170
6.4.4  客戶端代碼—實(shí)現(xiàn)程序的腳本 172
6.4.5  服務(wù)器端代碼總體說明 179
6.4.6  服務(wù)器端代碼—定義實(shí)體 179
6.4.7  服務(wù)器端代碼—創(chuàng)建與數(shù)據(jù)庫的連接 180
6.4.8  服務(wù)器端代碼—業(yè)務(wù)邏輯處理 181
6.4.9  服務(wù)器端代碼—客戶端請求處理 183
6.5  總結(jié) 184
第7章  Ajax的安全問題 185
7.1  JavaScript和瀏覽器的安全性 185
7.1.1  JavaScript修改設(shè)置 185
7.1.2  IFrame的問題 186
7.2  JavaScript的性能問題 189
7.2.1  循環(huán) 189
7.2.2  局部變量和全局變量 189
7.2.3  不使用eval 189
7.2.4  減少對象查找 189
7.2.5  字符串連接 189
7.2.6  類型轉(zhuǎn)換 190
7.2.7  使用直接量 191
7.2.8  字符串遍歷操作 191
7.2.9  高級對象 191
7.2.10  插入HTML 191
7.2.11  下標(biāo)查詢 191
7.2.12  創(chuàng)建DOM節(jié)點(diǎn) 191
7.3  總結(jié) 192
第8章  Lucene基礎(chǔ) 193
8.1  信息獲取與搜索引擎 193
8.1.1  信息獲取 193
8.1.2  搜索引擎的發(fā)展與分類 194
8.2  Luence的歷史 195
8.2.1  什么是全文檢索與全文檢索系統(tǒng) 195
8.2.2  什么是Lucene 196
8.2.3  Lucene的發(fā)展和現(xiàn)狀 197
8.2.4  使用Lucene能做什么 197
8.2.5  誰在使用Lucene 198
8.3  建立索引和搜索 198
8.3.1  索引 198
8.3.2  搜索 200
8.3.3  倒排索引 202
8.4  總結(jié) 203
第9章 第一個“搜索引擎” 204
9.1  初識Lucene 204
9.1.1  下載Lucene 204
9.1.2  Lucene的包結(jié)構(gòu) 204
9.2  為本機(jī)的文件創(chuàng)建索引 209
9.2.1  選擇要索引的文件和索引存放的位置 209
9.2.2  建立索引 209
9.3  試試搜索的效果 213
9.3.1  運(yùn)行搜索 213
9.3.2  如何進(jìn)行搜索—LuceneSearch類 213
9.3.3  修改測試 215
9.4  值得改進(jìn)的地方 216
9.4.1  思路 216
9.4.2  其他 217
9.5  總結(jié) 217
第10章 用Lucene來建立索引 218
10.1  索引建立的過程 218
10.1.1  提取文本 218
10.1.2  構(gòu)建Document 219
10.1.3  分析并建索 219
10.2  Lucene的文檔格式 219
10.2.1  文檔(Document) 219
10.2.2  字段(Field) 223
10.3  索引的添加—IndexWriter類 227
10.3.1  初始化 227
10.3.2  向索引添加文檔 228
10.3.3  調(diào)整性能參數(shù) 231
10.3.4  限制Field長度 232
10.4  Lucene的索引文件格式簡述 234
10.4.1  段(Segment) 235
10.4.2  索引文件 235
10.4.3  復(fù)合索引格式 236
10.4.4  索引轉(zhuǎn)換 236
10.5  索引的存放位置—FSDirectory與RAMDirectory 236
10.5.1  在磁盤中存放—FSDirectory 237
10.5.2  在內(nèi)存中存放—RAMDirectory 238
10.5.3  索引的合并 239
10.6  從索引中刪除文檔 241
10.6.1  刪除索引的工具—IndexReader類 241
10.6.2  刪除與反刪除某個特定的文檔 242
10.6.3  按字段(Field)來刪除 244
10.7  Lucene的索引優(yōu)化 245
10.7.1  為什么要優(yōu)化索引 245
10.7.2  優(yōu)化索引的方法—optimize() 245
10.8  Lucene索引的同步機(jī)制 246
10.8.1  同步法則 246
10.8.2  Lucene的索引“鎖” 246
10.9  總結(jié) 247
第11章 Lucene搜索 248
11.1  搜索的流程 248
11.1.1  初始化Lucene的檢索工具IndexSearcher 248
11.1.2  構(gòu)建Query 249
11.1.3  搜索并處理返回結(jié)果 249
11.2  搜索與結(jié)果 249
11.2.1  檢索工具—IndexSearcher類 249
11.2.2  檢索結(jié)果—Hits 254
11.3  Lucene的評分機(jī)制 260
11.3.1  理解評分的概念 260
11.3.2  Lucene評分算法 260
11.3.3  改變文檔的得分 261
11.4  構(gòu)建各種Query 264
11.4.1  按詞條搜索—TermQuery 264
11.4.2  “與或”搜索—BooleanQuery 266
11.4.3  在某一范圍內(nèi)搜索—RangeQuery 269
11.4.4  使用前綴搜索—PrefixQuery 272
11.4.5  多關(guān)鍵字的搜索—PhraseQuery 275
11.4.6  使用短語綴搜索—PhrasePrefixQuery 278
11.4.7  相近詞語的搜索—FuzzyQuery 280
11.4.8  使用通配符搜索—WildcardQuery 282
11.5  查詢字符串的解析—QueryParser類 284
11.5.1  QueryParser的簡單用法 285
11.5.2  QueryParser的“與”和“或” 285
11.6  總結(jié) 286
第12章 Lucene的分析器 287
12.1  Lucene分析器—Analyzer 287
12.1.1  Analyzer的概述 287
12.1.2  分詞器(Tokenizer)和過濾器(TokenFilter) 288
12.1.3  使用StandardAnalyzer進(jìn)行測試 290
12.2  JavaCC與Tokenizer 294
12.2.1  JavaCC簡介 294
12.2.2  通過JavaCC構(gòu)建的Lucene標(biāo)準(zhǔn)分析器 295
12.3  Lucene內(nèi)建的分析器 298
12.3.1  標(biāo)準(zhǔn)分析器——StandardAnalyzer 298
12.3.2  “停止詞”分析器—StopAnalyzer 303
12.3.3  “空格”分析器—WhitespaceAnalyzer 306
12.3.4  其他分析器 308
12.4  總結(jié) 308
第13章 高級搜索技巧 309
13.1  對搜索的結(jié)果排序 309
13.1.1  使用Sort類排序 309
13.1.2  最簡單的排序—相關(guān)度 312
13.1.3  按字段(Field)來對Document排序 314
13.1.4  對多個字段(Field)排序 316
13.1.5  自定義的排序 318
13.2  多域搜索和多索引搜索 319
13.2.1  使用MultiFieldQueryParser來進(jìn)行多域搜索 319
13.2.2  使用MultiSearcher來同時搜索多個索引 321
13.2.3  使用ParallelMultiSearcher來構(gòu)建多線程搜索 326
13.3  對搜索結(jié)果的過濾 326
13.3.1  日期過濾器—DateFilter 326
13.3.2  查詢過濾器—QueryFilter 328
13.3.3  帶緩存的過濾器—CachingWrapperFilter 331
13.4   總結(jié) 333
第14章 性能測試 334
14.1  搜索與檢索的速度 334
14.1.1  Google和百度的檢索速度 334
14.1.2  建立索引的速度 335
14.2  設(shè)定測試環(huán)境與測試方案 335
14.2.1  準(zhǔn)備文檔 335
14.2.2  硬件的準(zhǔn)備 337
14.2.3  測試方案 338
14.3  為6000篇文檔建立索引 338
14.3.1  構(gòu)建Document 338
14.3.2  建立索引的代碼 340
14.3.3  開始建立索引 345
14.3.4  調(diào)整性能參數(shù)建立索引 347
14.4  搜索測試 347
14.4.1  搜索關(guān)鍵字 347
14.4.2  多線程搜索的性能 349
14.5  總結(jié) 350
第15章 搜索引擎的中文問題 351
15.1  中文分詞的問題 351
15.1.1  中文分詞與英文分詞的區(qū)別 351
15.1.2  中文分詞的方法 352
15.2  Lucene對中文的處理 352
15.2.1  查看不同分析器的分詞效果 353
15.2.2  CJKAnalyzer對中文的處理 354
15.3  中文分詞工具ICTCLAS 354
15.3.1  詞庫 355
15.3.2  測試工具 355
15.3.3  開發(fā)接口 356
15.4  總結(jié) 356
第16章 Lucene SandBox 357
16.1  關(guān)于SandBox 357
16.2  Lucene索引工具箱—Luke 358
16.2.1  概述 358
16.2.2  主要功能和使用方法 358
16.3  Lucene索引監(jiān)視器:LIMO 363
16.3.1  簡介 363
16.3.2  主要功能和使用方法 363
16.4  Lucene命令行接口—LUCLI 368
16.4.1  簡介 368
16.4.2  開始運(yùn)行LUCLI 368
16.4.3  查看主要命令 368
16.5  總結(jié) 369

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號