騰訊、阿裏巴巴、百度、京東等諸多一綫互聯網公司正大力推進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:全文檢索實戰》給我的感覺,更像是一次深入的“解剖課”,讓我有機會一窺全文檢索技術的內部奧秘。作者以非常細緻的筆觸,從 Lucene 的基本構建塊開始,一步步剖析瞭全文檢索的核心機製。我尤其對書中關於倒排索引是如何構建的講解印象深刻,那些關於詞項、文檔、位置信息的關聯,仿佛在我腦海中構建瞭一個清晰的圖像。理解瞭 Lucene 的工作原理,再去看 Elasticsearch 又是如何在這個基礎上進行封裝和擴展的,就變得順理成章。書中對於 Elasticsearch 在分布式架構、數據分片、副本機製以及集群管理方麵的介紹,都非常到位,並且能夠結閤 Lucene 的特性進行解讀,讓我能夠從更宏觀的角度理解整個係統的設計思路。我注意到作者在講解過程中,並沒有迴避一些技術細節,反而將其作為重點來闡述,這對於真正想要掌握這項技術的讀者來說,無疑是極大的福音。這本書不僅教會瞭我如何使用 Elasticsearch,更讓我理解瞭其背後的“為什麼”,這對於我日後進行更深入的開發和優化,提供瞭堅實的基礎。
評分我一直認為,要真正掌握一項技術,就必須理解它的根基。而這本《從Lucene到Elasticsearch:全文檢索實戰》恰恰滿足瞭我的這個需求。作者並沒有急於展示 Elasticsearch 的各種炫酷功能,而是將我們帶迴到瞭 Lucene 的世界。通過對 Lucene 核心概念,例如倒排索引、詞項字典、文檔嚮量等內容的深入講解,我纔真正理解瞭全文檢索的底層原理。這種“追本溯源”的學習方式,讓我對後續學習 Elasticsearch 擁有瞭更加紮實的基礎。書中對不同分詞策略的比較分析,對索引性能優化的技巧,以及對查詢語言的細緻解讀,都給我留下瞭深刻的印象。特彆是在處理復雜查詢、模糊搜索、相關性排序等方麵,作者提供的實踐指導非常有價值。我喜歡書中這種嚴謹的學術態度,但同時又不失工程實踐的落地性。它就像一位經驗豐富的老師,耐心地引導我一步步走入全文檢索的殿堂,讓我能夠理解 Elasticsearch 為什麼能夠提供如此強大的搜索能力,以及如何纔能更有效地利用它。對於任何想要深入理解全文檢索技術,而不是僅僅停留在API調用的開發者來說,這本書無疑是開啓一段精彩旅程的鑰匙。
評分老實說,我一直對全文檢索這個領域有些敬畏,感覺它既神秘又強大。收到這本《從Lucene到Elasticsearch:全文檢索實戰》時,我抱著學習的心態,但很快就被書中深入淺齣的講解所摺服。作者並沒有直接跳到 Elasticsearch 的高級功能,而是循序漸進地從 Lucene 這個基礎框架講起,這對我來說至關重要。理解瞭 Lucene 的核心概念,再去看 Elasticsearch 的各種組件,就如同拆解積木一樣,一切都變得清晰起來。書中對索引構建的細節,如分詞器的選擇、索引優化策略,都進行瞭非常詳盡的闡述,這對於保證搜索的準確性和效率有著決定性的影響。我特彆欣賞作者在講解過程中穿插的實際案例和代碼示例,這使得抽象的技術概念變得具體可行,讓我可以邊學邊練,快速掌握核心要點。此外,書中對於 Elasticsearch 的分布式架構、集群管理、高可用性等方麵的介紹,也為我構建更具擴展性和魯棒性的搜索服務奠定瞭堅實的基礎。總而言之,這本書是我在全文檢索領域的一次“頓悟”,它不僅教會瞭我“怎麼做”,更讓我理解瞭“為什麼這麼做”,這對於一個開發者來說,價值是無法衡量的。
評分這是一本絕對值得深入研讀的書籍,盡管我纔剛剛翻開,就被它宏大的技術視野和精妙的編排所吸引。作者似乎是一位經驗豐富的老兵,將那些看似遙不可及的底層原理,用一種通俗易懂卻又不失嚴謹的方式娓娓道來。我尤其喜歡其中對於 Lucene 內部運作機製的細緻剖析,那些關於倒排索引、文檔結構、詞項字典的講解,簡直就像是在解剖一個精密的機器,讓我這個初學者也能窺見其核心的邏輯。書中對於性能優化的探討也讓我眼前一亮,從分片到副本,再到查詢的優化策略,都為我們這些希望構建高性能搜索係統的開發者提供瞭寶貴的參考。我迫不及待地想要探索 Elasticsearch 在此基礎上的演進,尤其是它如何將 Lucene 的強大能力封裝得如此易於使用,並提供瞭如此豐富的分布式特性。這本書不僅僅是知識的堆砌,更是一種思維的啓迪,讓我開始重新審視“搜索”這個概念,以及背後蘊含的巨大潛力。對於任何一個對信息檢索技術感興趣的開發者來說,這無疑是一本不可錯過的入門和進階指南,甚至對於一些經驗豐富的技術人員,也能從中獲得新的啓發。
評分這本書不僅僅是一本技術手冊,更像是一次從底層到上層的技術溯源之旅。作者非常有遠見地將 Lucene 作為起點,帶領讀者深入理解瞭全文檢索最核心的原理。對於我來說,理解倒排索引的構建過程、詞項的存儲方式,以及文檔與詞項之間的關聯,是理解整個搜索機製的關鍵。書中對於 Lucene 的 API 和數據結構的講解,非常詳盡,讓我能夠清晰地看到數據是如何被索引和檢索的。在此基礎上,作者又將目光轉嚮瞭 Elasticsearch,闡述瞭它如何基於 Lucene 構建瞭一個強大的分布式搜索平颱。我尤其欣賞書中對於 Elasticsearch 的集群管理、數據同步、故障轉移等方麵進行的係統性介紹,這些內容對於構建穩定可靠的搜索服務至關重要。而且,作者在講解過程中,常常會穿插一些實際應用場景的分析,這使得抽象的技術概念變得更加生動和易於理解。總的來說,這本書為我打開瞭一個全新的視野,讓我不再僅僅滿足於調用現成的 API,而是能夠更深入地理解全文檢索技術的本質,並能夠靈活運用它來解決實際問題。
評分內容不錯,入門學elasticsearch挺好的,天咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯啦咯
評分很喜歡在東東上網購 真的不錯的 比其他網店實在 服務好 好喜歡 還會介紹朋友來,非常感謝京東商城給予的優質的服務,從倉儲管理、物流配送等各方麵都是做的非常好的。送貨及時,配送員也非常的熱情,有時候不方便收件的時候,也安排時間另行配送。同時京東商城在售後管理上也非常好的,以解客戶憂患,排除萬難。給予我們非常好的購物體驗。
評分專業書籍,需要好好研讀,印刷質量不錯!
評分5.4.0的版本 算比較新的瞭 也稍微介紹瞭JavaAPI 還有kibana 感覺還行 推薦
評分好書 想買好久瞭
評分書很厚,很好,不錯的書。學習一下基礎。
評分很實用,講解的比較清楚,不需要太多基礎。
評分最近在看機器學習,送券買的,包裝完好,大贊~
評分對於新手來說還是不錯的。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有