-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

從Lucene到Elasticsearch:全文檢索實戰

( 簡體 字)
作者:姚攀類別:1. -> 程式設計 -> 搜索引擎
譯者:
出版社:清華大學出版社從Lucene到Elasticsearch:全文檢索實戰 3dWoo書號: 48062
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:12/1/2017
頁數:309
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302483069
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

我們正處在一個大數據時代,大數據并不僅僅是指海量數據,而更多的是指這些數據都是非結構化的、無法用傳統的方法進行處理的數據。相信很多人聽說過目前在云計算和大數據領域里如日中天的Hadoop,Hadoop的發起人之一是大名鼎鼎的Doug Cutting。早在Hadoop誕生之前,Doug Cutting已經用Java實現了第一個提供全文文本搜索的開源函數庫 Lucene。Lucene自2000年發布第一個開源版本以來,在開源社區引起了很大的反響,為廣大開發者提供了研發全文檢索系統的利器。Lucene作為Apache的頂級項目,有大量研發人員貢獻源碼,經過十幾年的發展,目前Lucene已經十分成熟,可以說Lucene是當今最先進、最高效的全功能開源搜索引擎工具包。但Lucene只是一個全文檢索類庫,Elasticsearch是一個建立在Lucene基礎上的實時的分布式搜索引擎,2010年由Shay Bano發布。相比于Lucene,Elasticsearch功能更加強大,使用更加方便。
站在巨人的肩膀上,入門搜索技術并不困難,本書為入門Lucene、Elasticsearch而生。本書首先介紹信息檢索領域中的一些基本理論,也就是Lucene的數學模型,之后介紹如何使用Lucene庫構建全文檢索系統,最后介紹Elasticsearch。本書按照從數學模型到入門基礎再到項目實戰的思路來編寫,數學模型讓讀者知其然也知其所以然,入門基礎是理論到實際應用的必經之路,項目實戰則是為了學以致用。書中的每一部分都力圖簡明扼要,使用大量實例和代碼,為讀者能夠快速掌握全文檢索技術掃除障礙。將全文檢索領域中的一些知識和項目經驗分享給大家,是筆者寫作本書的初衷。
本書結構
本書從邏輯上可劃分為三部分。
第一部分(第1章),主要介紹信息過載、信息檢索、倒排索引、布爾模型、tf-idf、向量空間模型、概率檢索模型等信息檢索領域的基礎知識。
第二部分(第2和3章),介紹如何使用Lucene開發全文檢索系統。
第2章主要介紹Lucene的基礎知識,內容包括Lucene的特點、Lucene架構、Luke的使用、IK分詞器配置、擴展詞庫和遠程詞庫的配置、Lucene的多種分詞器、索引的構建方法、檢索文檔以及實現檢索關鍵詞高亮的方法。
第3章是Lucene項目實戰部分,介紹如何使用Lucene構建一個文件檢索系統,內容包括項目的整體設計、使用Tika做信息抽取、索引的構建、用戶查詢界面的設計與實現、用戶查詢處理、搜索結果展示等內容。

第三部分(第4~11章),主要介紹Elasticsearch分布式搜索引擎的相關技術。
第4章是Elasticsearch簡介,內容包括Elasticsearch與Lucene的關系、Elasticsearch的整體架構、核心概念、在企業中的應用案例、流行度趨勢、Elasticsearch的安裝、中文分詞配置以及相關插件的安裝與使用。
第5章是Elasticsearch集群入門,主要內容包括索引管理、文檔管理和映射詳解。
第6章介紹Elasticsearch的搜索功能,主要內容包括搜索機制的解讀、全文查詢、詞項查詢、復合查詢、嵌套查詢、位置查詢、特殊查詢、搜索高亮和排序。
第7章介紹Elasticsearch的聚合分析功能。
第8章介紹如何使用Elasticsearch Java API做二次開發。
第9章介紹Elasticsearch集群管理的相關知識點,包括腦裂問題、集群規劃、索引規劃、分布式集群的搭建方法以及如何查看集群的監控信息。
第10章是Elasticsearch整合MySQL項目實戰部分,通過實現對MySQL中的數據進行全文檢索這一需求,貫穿了MySQL、JDBC、Elasticsearch Java API以及Java Web的相關知識,使讀者了解在實際的項目開發中使用Elasticsearch做全文搜索的方法。
第11章介紹Elasticsearch和Hadoop大數據平臺交互的方法。
學習本書的預備知識
Java基礎
首先要配置好Java開發環境。不論是學習Lucene還是Elasticsearch都需要安裝好Java環境,Elasticsearch的運行要求JDK版本最低為1.7,建議使用JDK 1.8及以上版本。鑒于Java的跨平臺特性,對操作系統沒有要求,在Windows、Linux、Mac OS X系統上都可以運行Elasticsearch。除此之外,讀者需要掌握Java基礎知識。
Java Web開發技術
在項目實戰中需要用到Java Web的相關技術,建議讀者在閱讀本書之前掌握HTML、CSS、JSP等基礎知識,掌握Java Web項目的部署和運行。
本書使用的軟件版本
本書基于Lucene 6.0和Elasticsearch 5.4.0進行講解,集成開發環境為Eclipse 4.6.1。
讀者對象
在校學生
如果你是正在大學校園里修讀計算機科學相關專業的大學生,也許你正在選修程序設計語言,課程結束了你發現自己只能寫出命令行下黑白屏顯示的小程序,你也許很期待學到更多的技術做出實際的項目,那么本書就是為你準備的。書中的項目使用的是Java語言,除了Lucene和Elasticsearch的使用之外,還穿插了Java SE、Java Web的相關技術。

Java程序開發者
如果你是已經參加工作的Java程序開發者,想要掌握全文檢索相關技術卻不知道從哪里入手,需要處理企業中的全文檢索業務卻沒有思路,你也許聽說過Lucene或Elasticsearch,但是不知道怎樣快速入門,那么本書可以作為入門全文檢索、學習Lucene和Elasticsearch開發技術的參考書。
搜索引擎研發人員
如果你是搜索引擎研發者,本書中的實際案例和相關知識點可以作為參考資料,比如信息檢索模型理論基礎、文檔信息抽取、Lucene應用案例、Elasticsearch Java API、Elasticsearch集群管理等。希望能以本書為媒介和大家共同探討和交流。
本書能夠順利出版要感謝很多單位和個人。首先要感謝筆者的家人,他們對筆者學業的支持和生活的照顧使筆者沒有后顧之憂,全身心投入到本書的寫作當中。
感謝北京博瑞開源有限公司,公司給筆者提供了寶貴的實習機會,本書的很多知識點都來源于實際項目,是在解決實際問題過程中的經驗總結,感謝公司董事長李小翔先生、架構師黃超對筆者的指導和幫助。
感謝馬玉鵬老師、郎睿師兄、張港紅博士、CSDN博主周程(blog.csdn.net/fxsdbt520)、秦雪箭、宗鵬、陸風光在本書寫作過程中的幫助和支持。
感謝清華大學出版社給了筆者一次和大家分享技術、交流學習的機會,感謝王金柱編輯在本書出版過程的辛勤付出。




姚 攀
2017年10月9日
內容簡介:

本書循序漸進介紹了信息檢索、布爾檢索、向量空間模型、tf-idf、BM25排序算法、Lucene架構、Lucene創建索引、Lucene查詢、Lucene項目實戰、Elasticsearch安裝與配置、Elasticsearch插件安裝、REST API數據操作、映射與模板、索引別名、Elasticsearch基本和高級搜索、Elasticsearch同步數據庫、Elasticsearch集群管理、項目實戰等內容。閱讀本書,讀者能夠掌握信息檢索的核心概念,應用Lucene庫處理全文檢索業務,掌握Elasticsearch分布式搜索引擎的使用方法與技巧。
本書基于Lucene 6.0和Elasticsearch 5.4.0進行講解,技術先進,示例豐富,適合想學習信息檢索技術的初學者和相關專業的大學生、研究生學習,也很適合大數據及云計算平臺構建人員以及有一定基礎的IT開發人員使用。
目錄:

第1章信息檢索模型1
1.1信息檢索概述1
1.1.1信息過載1
1.1.2信息檢索定義2
1.1.3信息檢索常用術語3
1.1.4信息檢索系統4
1.2分詞算法5
1.2.1分詞算法概述5
1.2.2詞典匹配分詞法6
1.2.3語義理解分詞法6
1.2.4詞頻統計分詞法7
1.3倒排索引7
1.4布爾檢索模型9
1.5tf-idf權重計算11
1.6向量空間模型13
1.7概率檢索模型16
1.7.1貝葉斯決策理論17
1.7.2二值獨立模型18
1.7.3OkapiBM25模型20
1.7.4BM25F模型20
1.8本章小結21
第2章Lucene開發入門22
2.1Lucene概述22
2.1.1Lucene簡介22
2.1.2Lucene特點22
2.1.3Lucene架構23
2.2Lucene開發準備25
2.2.1下載Lucene文件庫25
2.2.2工程中引入Lucene26
2.2.3下載Luke27
2.2.4下載IK分詞工具28
2.2.5工程搭建29
2.3Lucene分詞詳解30
2.3.1Lucene分詞系統30
2.3.2分詞器測試31
2.3.3IK分詞器配置34
2.3.4中文分詞器對比36
2.3.5擴展停用詞詞典38
2.3.6擴展自定義詞典38
2.4Lucene索引詳解40
2.4.1Lucene字段類型40
2.4.2索引文檔示例41
2.4.3Luke中查看索引46
2.4.4索引的刪除48
2.4.5索引的更新49
2.5Lucene查詢詳解50
2.5.1搜索入門51
2.5.2多域搜索(MultiFieldQueryParser)52
2.5.3詞項搜索(TermQuery)53
2.5.4布爾搜索(BooleanQuery)53
2.5.5范圍搜索(RangeQuery)54
2.5.6前綴搜索(PrefixQuery)55
2.5.7多關鍵字搜索(PhraseQuery)55
2.5.8模糊搜索(FuzzyQuery)55
2.5.9通配符搜索(WildcardQuery)56
2.6Lucene查詢高亮56
2.7Lucene新聞高頻詞提取58
2.7.1問題提出58
2.7.2需求分析58
2.7.3編程實現58
2.8本章小結61
第3章Lucene文件檢索項目實戰62
3.1需求分析62
3.2架構設計63
3.3文本內容抽取64
3.3.1Tika簡介64
3.3.2Tika下載64
3.3.3搭建工程65
3.3.4內容抽取66
3.3.5自動解析68
3.4工程搭建71
3.5索引文檔72
3.6查詢界面75
3.7文件檢索77
3.8結果展示80
3.9本章小結85
第4章從Lucene到Elasticsearch86
4.1Elasticsearch概述86
4.1.1誕生過程86
4.1.2流行度分析88
4.1.3架構解讀89
4.1.4優點89
4.1.5應用場景90
4.1.6核心概念92
4.1.7對比RDMS94
4.1.8文檔結構94
4.2安裝Elasticsearch95
4.2.1安裝Java96
4.2.2下載Elasticsearch97
4.2.3啟動Elasticsearch97
4.2.4后臺運行Elasticsearch99
4.2.5關閉Elasticsearch99
4.2.6基本配置100
4.3中文分詞器配置101
4.3.1IK分詞器安裝101
4.3.2擴展本地詞庫102
4.3.3配置遠程詞庫103
4.4Head插件使用指南105
4.4.1Head插件的安裝105
4.4.2Head插件的使用107
4.5REST命令109
4.5.1CURL工具110
4.5.2KibanaDevTools111
4.6本章小結112
第5章Elasticsearch集群入門113
5.1索引管理113
5.1.1新建索引113
5.1.2更新副本115
5.1.3讀寫權限115
5.1.4查看索引116
5.1.5刪除索引117
5.1.6索引的打開與關閉118
5.1.7復制索引118
5.1.8收縮索引119
5.1.9索引別名120
5.2文檔管理123
5.2.1新建文檔123
5.2.2獲取文檔125
5.2.3更新文檔127
5.2.4查詢更新129
5.2.5刪除文檔129
5.2.6查詢刪除130
5.2.7批量操作130
5.2.8版本控制133
5.2.9路由機制136
5.3映射詳解137
5.3.1映射分類137
5.3.2動態映射138
5.3.3日期檢測140
5.3.4靜態映射141
5.3.5字段類型142
5.3.6元字段156
5.3.7映射參數162
5.3.8映射模板180
5.4本章小結181
第6章Elasticsearch搜索詳解182
6.1搜索機制182
6.2全文查詢188
6.2.1matchquery188
6.2.2match_phrasequery190
6.2.3match_phrase_prefixquery190
6.2.4multi_matchquery190
6.2.5common_termsquery191
6.2.6query_stringquery193
6.2.7simple_query_string193
6.3詞項查詢193
6.3.1termquery193
6.3.2termsquery193
6.3.3rangequery194
6.3.4existsquery194
6.3.5prefixquery195
6.3.6wildcardquery195
6.3.7regexpquery196
6.3.8fuzzyquery196
6.3.9typequery196
6.3.10idsquery197
6.4復合查詢197
6.4.1constant_scorequery197
6.4.2boolquery198
6.4.3dis_maxquery198
6.4.4function_scorequery199
6.4.5boostingquery200
6.4.6indicesquery201
6.5嵌套查詢202
6.5.1nestedquery202
6.5.2has_childquery202
6.5.3has_parentquery204
6.6位置查詢205
6.6.1geo_distancequery206
6.6.2geo_bounding_boxquery206
6.6.3geo_polygonquery208
6.6.4geo_shapequery209
6.7特殊查詢210
6.7.1more_like_thisquery210
6.7.2scriptquery211
6.7.3percolatequery211
6.8搜索高亮213
6.8.1自定義高亮片段213
6.8.2多字段高亮213
6.8.3高亮性能分析214
6.9搜索排序215
6.9.1默認排序215
6.9.2多字段排序215
6.9.3分片影響評分216
6.10本章小結218
第7章聚合分析219
7.1指標聚合219
7.1.1MaxAggregation219
7.1.2MinAggregation220
7.1.3AvgAggregation220
7.1.4SumAggregation221
7.1.5CardinalityAggregation221
7.1.6StatsAggregation222
7.1.7ExtendedStatsAggregation222
7.1.8PercentilesAggregation223
7.1.9ValueCountAggregation224
7.2桶聚合224
7.2.1TermsAggregation225
7.2.2FilterAggregation227
7.2.3FiltersAggregation227
7.2.4RangeAggregation228
7.2.5DateRangeAggregation231
7.2.6DateHistogramAggregation232
7.2.7MissingAggregation233
7.2.8ChildrenAggregation233
7.2.9GeoDistanceAggregation234
7.2.10IPRangeAggregation235
7.3本章小結236
第8章ElasticsearchJavaAPI237
8.1JavaAPI簡介237
8.2Maven依賴238
8.3依賴沖突240
8.4連接到集群240
8.4.1傳輸機連接241
8.4.2節點連接241
8.4.3代碼實現241
8.5索引管理243
8.6文檔管理246
8.6.1新建文檔246
8.6.2獲取文檔249
8.6.3刪除文檔250
8.6.4更新文檔250
8.6.5查詢刪除252
8.6.6批量獲取252
8.6.7批量操作253
8.7搜索詳解254
8.7.1全文查詢257
8.7.2詞項查詢257
8.7.3復合查詢258
8.7.4嵌套查詢260
8.7.5位置查詢260
8.7.6特殊查詢261
8.8聚合分析262
8.8.1指標聚合263
8.8.2桶聚合265
8.9集群管理269
8.10本章小結269
第9章集群管理270
9.1集群規劃270
9.2索引規劃272
9.3分布式集群273
9.4CatAPI275
9.4.1cataliases275
9.4.2catallocation275
9.4.3catcount275
9.4.4catfielddata276
9.4.5cathealth276
9.4.6catindices276
9.4.7catmaster276
9.4.8catnodeattrs277
9.4.9catnodes277
9.4.10catpendingtasks277
9.4.11catplugins277
9.4.12catrecovery278
9.4.13catrepositories278
9.4.14catthreadpool278
9.4.15catshards278
9.4.16catsegments279
9.4.17cattemplates279
9.5ClusterAPI279
9.5.1ClusterHealth279
9.5.2ClusterState281
9.5.3ClusterStats282
9.5.4PendingClusterTasks282
9.5.5ClusterReroute282
9.5.6ClusterUpdateSettings283
9.5.7NodesStats283
9.5.8NodesInfo283
9.5.9TaskManagementAPI284
9.5.10ClusterAllocationExplainAPI284
9.6監控插件284
9.7本章小結286
第10章新聞搜索項目實戰287
10.1需求分析287
10.2數據準備288
10.3數據導入290
10.4查詢界面294
10.5搜索新聞296
10.6結果展示298
10.7本章小結302
第11章ElasticsearchForHadoop303
11.1Hadoop基礎304
11.1.1SSH配置304
11.1.2Hadoop下載305
11.1.3Hadoop單機模式305
11.1.4Hadoop偽分布式模式306
11.1.5HDFS常用操作309
11.2ES-Hadoop安裝310
11.2.1壓縮包下載310
11.2.2Maven依賴310
11.3從HDFS到Elasticsearch311
11.3.1測試數據311
11.3.2編寫程序312
11.3.3代碼分析313
11.4從Elasticsearch到HDFS314
11.4.1讀取索引到HDFS314
11.4.2查詢Elasticsearch寫入HDFS315
11.5本章小結316
參考文獻317
序: