發表於2024-11-27
騰訊、阿裏巴巴、百度、京東等諸多一綫互聯網公司正大力推進Elasticsearch的使用場景
《從Lucene到Elasticsearch:全文檢索實戰》以豐富的實例著重介紹瞭Elasticsearch的方方麵麵,可幫助讀者快速應用Lucene庫處理全文檢索業務,掌握使用Elasticsearch搭建分布式搜索引擎的方法與技巧。
《從Lucene到Elasticsearch:全文檢索實戰》是編者在信息檢索、Lucene和Elasticsearch學習、實際項目實踐過程中的心得體會和經驗總結。本書從原理到實踐,涉及的內容包括信息檢索的核心概念、Lucene架構、使用Lucene創建索引和索引查詢、Elasticsearch入門、Elasticsearch基本搜索、Elasticsearch高級搜索、Elasticsearch Java API、Elasticsearch同步數據庫、Elasticsearch集群管理、Lucene與Elasticsearch項目實戰等。、
針對初級開發者,可以通過本書提供的眾多實例入手,循序漸進,由點到麵地進行學習;另外,《從Lucene到Elasticsearch:全文檢索實戰》的每個實例都提供瞭可執行程序與詳盡的代碼注解,從而有效降低學習門檻,提高學習效率。
對於有編程經驗的開發者通過學習本書,可以用Lucene和Elasticsearch解決工作中的問題,增強業務處理能力,實現獨立開發信息檢索係統的目標。
《從Lucene到Elasticsearch:全文檢索實戰》循序漸進介紹瞭信息檢索、布爾檢索、嚮量空間模型、tf-idf、BM25排序算法、Lucene架構、Lucene創建索引、Lucene查詢、Lucene項目實戰、Elasticsearch安裝與配置、Elasticsearch插件安裝、REST API數據操作、映射與模闆、索引彆名、Elasticsearch基本和高級搜索、Elasticsearch同步數據庫、Elasticsearch集群管理、項目實戰等內容。
閱讀《從Lucene到Elasticsearch:全文檢索實戰》,讀者能夠掌握信息檢索的核心概念,應用Lucene庫處理全文檢索業務,掌握Elasticsearch分布式搜索引擎的使用方法與技巧。
《從Lucene到Elasticsearch:全文檢索實戰》基於Lucene 6.0和Elasticsearch 5.4.0進行講解,技術先進,示例豐富
適閤想學習信息檢索技術的初學者和相關專業的大學生、研究生學習,也很適閤大數據及雲計算平颱構建人員以及有一定基礎的IT開發人員使用。
姚攀:中國科學院大學碩士,擅長j2ee開發,對搜索引擎技術有濃厚的興趣和較深入研究,有豐富的Lucene和ElasticSearch開發經曆和項目經驗,活躍於CSDN社區,目前在一傢公司做ES搜索業務開發。
目 錄
第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.5 tf-idf權重計算 11
1.6 嚮量空間模型 13
1.7 概率檢索模型 16
1.7.1 貝葉斯決策理論 17
1.7.2 二值獨立模型 18
1.7.3 Okapi BM25模型 20
1.7.4 BM25F模型 20
1.8 本章小結 21
第2章 Lucene開發入門 22
2.1 Lucene概述 22
2.1.1 Lucene簡介 22
2.1.2 Lucene特點 22
2.1.3 Lucene架構 23
2.2 Lucene開發準備 25
2.2.1 下載Lucene文件庫 25
2.2.2 工程中引入Lucene 26
2.2.3 下載Luke 27
2.2.4 下載IK分詞工具 28
2.2.5 工程搭建 29
2.3 Lucene分詞詳解 30
2.3.1 Lucene分詞係統 30
2.3.2 分詞器測試 31
2.3.3 IK分詞器配置 34
2.3.4 中文分詞器對比 36
2.3.5 擴展停用詞詞典 38
2.3.6 擴展自定義詞典 38
2.4 Lucene索引詳解 40
2.4.1 Lucene字段類型 40
2.4.2 索引文檔示例 41
2.4.3 Luke中查看索引 46
2.4.4 索引的刪除 48
2.4.5 索引的更新 49
2.5 Lucene查詢詳解 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.6 Lucene查詢高亮 56
2.7 Lucene新聞高頻詞提取 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.1 Tika簡介 64
3.3.2 Tika下載 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到Elasticsearch 86
4.1 Elasticsearch概述 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 對比RDMS 94
4.1.8 文檔結構 94
4.2 安裝Elasticsearch 95
4.2.1 安裝Java 96
4.2.2 下載Elasticsearch 97
4.2.3 啓動Elasticsearch 97
4.2.4 後颱運行Elasticsearch 99
4.2.5 關閉Elasticsearch 99
4.2.6 基本配置 100
4.3 中文分詞器配置 101
4.3.1 IK分詞器安裝 101
4.3.2 擴展本地詞庫 102
4.3.3 配置遠程詞庫 103
4.4 Head插件使用指南 105
4.4.1 Head插件的安裝 105
4.4.2 Head插件的使用 107
4.5 REST命令 109
4.5.1 CURL工具 110
4.5.2 Kibana Dev Tools 111
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
前 言
我們正處在一個大數據時代,大數據並不僅僅是指海量數據,而更多的是指這些數據都是非結構化的、無法用傳統的方法進行處理的數據。相信很多人聽說過目前在雲計算和大數據領域裏如日中天的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集群管理等。希望能以本書為媒介和大傢共同探討和交流。
源代碼下載
源代碼下載地址:http://pan.baidu.com/s/1slHRM5f(注意區分數字和英文字母的大 小寫)
勘誤與交流
限於筆者水平和寫作時間有限,不可避免地會有些疏漏之處,歡迎大傢通過電子郵件等方式批評指正。
筆者的郵箱:ucasyp@163.com
筆者的博客:blog.csdn.net/napoay
緻謝
本書能夠順利齣版要感謝很多單位和個人。首先要感謝筆者的傢人,他們對筆者學業的支持和生活的照顧使筆者沒有後顧之憂,全身心投入到本書的寫作當中。
感謝北京博瑞開源有限公司,公司給筆者提供瞭寶貴的實習機會,本書的很多知識點都來源於實際項目,是在解決實際問題過程中的經驗總結,感謝公司董事長李小翔先生、架構師黃超對筆者的指導和幫助。
感謝馬玉鵬老師、郎睿師兄、張港紅博士、CSDN博主周程(blog.csdn.net/fxsdbt520)、秦雪箭、宗鵬、陸風光在本書寫作過程中的幫助和支持。
感謝清華大學齣版社給瞭筆者一次和大傢分享技術、交流學習的機會,感謝王金柱編輯在本書齣版過程的辛勤付齣。
姚 攀
2017年10月9日
從Lucene到Elasticsearch:全文檢索實戰 下載 mobi pdf epub txt 電子書 格式 2024
從Lucene到Elasticsearch:全文檢索實戰 下載 mobi epub pdf 電子書看看基礎底層的東西吧
評分好書 寫的很通俗易懂 要好好學習
評分不錯的商品和服務質量,推薦給大傢分享一下我的感受……不錯的商品和服務質量,推薦給大傢分享一下我的感受……
評分京東速度,正品保證,優質服務,越來越好,信賴京東,支持京東。
評分實戰齣真知啊
評分包裝還可以,沒有拆封看。京東的圖書一如既往的好23333,希望以後促銷少一點套路,買本書還要摺騰半天
評分之前買過瞭,這次繼續買,下次還買
評分書包裝完好無損,內容講解很細緻,需要好好研究學習,很棒的書
評分不錯不錯 送貨快
從Lucene到Elasticsearch:全文檢索實戰 mobi epub pdf txt 電子書 格式下載 2024