發表於2024-11-25
本書涵蓋瞭Elasticsearch的許多中高級功能,並介紹瞭緩存、ApacheLucene庫以及監控等模塊的內部運作機製。其中,還涉及一些實用案例,比如配置Elasticsearch參數、使用監控API等。
譯者序
作者簡介
評審者簡介
前言
第1章 Elasticsearch簡介1
1.1 Apache Lucene簡介1
1.1.1 熟悉Lucene2
1.1.2 Lucene的總體架構2
1.1.3 分析數據4
1.1.4 Lucene查詢語言5
1.2 何為Elasticsearch8
1.2.1 Elasticsearch的基本概念8
1.2.2 Elasticsearch架構背後的關鍵概念10
1.2.3 Elasticsearch的工作流程10
1.3 在綫書店示例14
1.4 小結17
第2章 查詢DSL進階18
2.1 Apache Lucene默認評分公式解釋18
2.1.1 何時文檔被匹配上19
2.1.2 TF/IDF評分公式19
2.1.3 Elasticsearch如何看評分21
2.1.4 一個例子21
2.2 查詢改寫24
2.2.1 前綴查詢示例24
2.2.2 迴到Apache Lucene26
2.2.3 查詢改寫的屬性28
2.3 查詢模闆30
2.3.1 引入查詢模闆31
2.3.2 Mustache模闆引擎33
2.3.3 把查詢模闆保存到文件35
2.4 過濾器的使用及作用原理36
2.4.1 過濾及查詢相關性36
2.4.2 過濾器的工作原理40
2.4.3 性能考量41
2.4.4 後置過濾和過濾查詢42
2.4.5 選擇正確的過濾方式44
2.5 選擇正確的查詢方式45
2.5.1 查詢方式分類45
2.5.2 使用示例50
2.6 小結65
第3章 不隻是文本搜索66
3.1 查詢二次評分66
3.1.1 什麼是查詢二次評分67
3.1.2 一個查詢例子67
3.1.3 二次評分查詢的結構67
3.1.4 二次評分參數70
3.1.5 總結70
3.2 多匹配控製71
3.3 重要詞項聚閤78
3.3.1 一個例子79
3.3.2 選擇重要詞項81
3.3.3 多值分析81
3.3.4 額外的配置84
3.3.5 使用限製89
3.4 文檔分組89
3.4.1 top_hits聚閤90
3.4.2 一個例子90
3.5 文檔關係95
3.5.1 對象類型95
3.5.2 嵌套文檔98
3.5.3 parent-child關係99
3.5.4 其他解決方案102
3.6 Elasticsearch各版本中腳本的變化102
3.6.1 腳本變遷102
3.6.2 Groovy簡單介紹103
3.6.3 全文檢索中的腳本108
3.6.4 Lucene錶達式115
3.7 小結118
第4章 改善用戶搜索體驗119
4.1 改正用戶拼寫錯誤119
4.1.1 測試數據120
4.1.2 深入技術細節121
4.1.3 suggester121
4.2 改善查詢相關性142
4.2.1 數據142
4.2.2 改善相關性的探索之旅145
4.3 小結157
第5章 分布式索引架構159
5.1 選擇閤適的分片和副本數159
5.1.1 分片和過度分配160
5.1.2 一個過度分配的正麵例子161
5.1.3 多分片與多索引161
5.1.4 副本161
5.2 路由162
5.2.1 分片和數據162
5.2.2 測試路由功能162
5.2.3 索引時使用路由166
5.2.4 彆名169
5.2.5 多個路由值169
5.3 調整默認分片的分配行為170
5.3.1 部署意識171
5.3.2 過濾173
5.3.3 運行時更新分配策略174
5.3.4 確定每個節點允許的總分片數175
5.3.5 確定每個物理機器允許的總分片數175
5.4 查詢執行偏好179
5.5 小結181
第6章 底層索引控製182
6.1 改變Apache Lucene的評分方式182
6.1.1 可用的相似度模型183
6.1.2 為每字段配置相似度模型183
6.1.3 相似度模型配置184
6.1.4 選擇默認的相似度模型185
6.2 選擇適當的目錄實現—store模塊188
6.3 準實時、提交、更新及事務日誌191
6.3.1 索引更新及更新提交192
6.3.2 事務日誌193
6.3.3 準實時讀取194
6.4 控製索引閤並195
6.4.1 選擇正確的閤並策略196
6.4.2 閤並策略配置197
6.4.3 調度199
6.5 關於I/O調節200
6.5.1 控製I/O節流200
6.5.2 配置200
6.6 理解Elasticsearch緩存202
6.6.1 過濾器緩存203
6.6.2 字段數據緩存204
6.6.3 查詢分片緩存212
6.6.4 使用circuit breaker213
6.6.5 清除緩存214
6.7 小結215
第7章 管理Elasticsearch216
7.1 發現和恢復模塊216
7.1.1 發現模塊的配置217
7.1.2 主節點218
7.1.3 網關和恢復模塊的配置223
7.1.4 索引恢復API226
7.2 使用人類友好的Cat API 229
7.2.1 基礎知識230
7.2.2 使用Cat API231
7.2.3 一些例子232
7.3 備份232
7.4 聯盟搜索236
7.4.1 測試用的集群236
7.4.2 建立部落節點237
7.4.3 通過部落節點讀取數據238
7.4.4 通過部落節點寫入數據239
7.4.5 處理索引衝突240
7.4.6 屏蔽寫操作241
7.5 小結242
第8章 提高性能243
8.1 使用doc values來優化查詢243
8.1.1 字段緩存存在的問題244
8.1.2 使用doc values的例子245
8.2 瞭解垃圾迴收器247
8.2.1 Java內存248
8.2.2 解決垃圾迴收問題249
8.2.3 在類UNIX係統上避免內存交換254
8.3 對查詢做基準測試255
8.3.1 為基準測試配置集群256
8.3.2 進行基準測試256
8.3.3 控製運行中的基準測試259
8.4 熱點綫程261
8.4.1 熱點綫程的使用說明261
8.4.2 熱點綫程API的響應262
8.5 擴展Elasticsearch263
8.5.1 垂直擴展263
8.5.2 水平擴展264
8.5.3 在高負載的場景下使用Elasticsearch271
8.6 小結283
第9章 開發Elasticsearch插件284
9.1 創建Maven項目284
9.2 瞭解基本知識285
9.2.1 Maven Java項目的結構285
9.2.2 POM的理念285
9.2.3 執行構建過程286
9.2.4 引入Maven裝配插件287
9.3 創建自定義REST行為289
9.3.1 設定289
9.3.2 實現細節289
9.4 創建自定義分析插件295
9.4.1 實現細節295
9.4.2 測試自定義分析插件302
9.5 小結304
歡迎來到Elasticsearch的世界並閱讀本書第2版。通過閱讀本書,我們將帶領你接觸與Elasticsearch緊密相關的各種話題。請注意,本書不是為初學者寫的。筆者將本書作為《ElasticsearchServer,SecondEdition》的續作和姊妹篇。相對於《ElasticsearchServer》,本書涵蓋瞭很多新知識,不過你偶爾也可以在本書中發現一些引自《ElasticsearchServer》的內容。
本書將探討與Elasticsearch和Lucene相關的多個不同主題。首先,我們以介紹Lucene和Elasticsearch的基本概念作為開始,帶領讀者認識Elasticsearch提供的眾多查詢方式。在這裏,將涉及和查詢相關的不同主題,比如結果過濾以及如何為特定場景選擇閤適的查詢方式。顯然,Elasticsearch不僅僅隻有查詢功能。因此,本書還將介紹Elasticsearch新加入的聚集功能,以及眾多能夠賦予被索引數據意義的特性,並設法提供更佳的用戶查詢體驗。
對大多數用戶來說,查詢和數據分析是Elasticsearch最吸引人的部分,不過這些還不是我們想要探索的全部內容。因此,本書在涉及索引架構時還會試圖跟讀者探討一些額外話題,比如如何選擇閤適的分片數和副本數,如何調整分片分配行為等。當談論Elasticsearch和Lucene之間的關係時,我們還將介紹不同的打分算法、算法之間的差異、如何選擇閤適的存儲機製,以及為什麼需要做此選擇。
最後,我們還將觸及Elasticsearch的管理功能,將探討發現和恢復模塊,以及對人類友好的CatAPI。CatAPI可以幫助我們快速獲取相關的運維信息,它的返迴數據組織成一種大多數人都易於閱讀的格式,無需進行JSON解析。我們還將認識和使用部落節點,它能夠為我們提供在多個節點間聯閤查詢的能力。
因為本書的書名,我們無法忽略與性能相關的話題,所以我們決定用整整一章來探討性能。我們談論瞭文檔取值及其相關改進,還介紹瞭垃圾迴收器的工作方式,以及在垃圾迴收器未能如我們期望般工作時可以做些什麼。最後,探討瞭如何擴展Elasticsearch以應對高索引量和查詢量的場景。
和本書第1版一樣,我們決定以開發Elasticsearch插件的話題作為本書結尾。我們將展示如何構建ApacheMaven項目,並開發兩個不同類型的插件—自定義REST操作插件和自定義分析插件。
假如你在讀完某些主題後對其産生濃厚的興趣,那麼這本書就是適閤你的。希望你在讀完後能夠喜歡這本書。
本書主要內容第1章先介紹ApacheLucene的工作方式,再介紹Elasticsearch的基本概念,並演示Elasticsearch內部是如何工作的。
第2章描述Lucene評分過程,為什麼要進行查詢改寫,什麼是查詢模闆以及如何使用查詢模闆。除此之外,還介紹瞭過濾器的使用,以及如何為特定場景選擇閤適的查詢方式。
第3章描述瞭查詢二次評分、多匹配控製,並介紹瞭用於做查詢分析的各種聚閤類型。關鍵詞項聚閤和最優詞項聚閤可以根據所含內容片段對文檔進行歸類。除此之外,還介紹瞭Elasticsearch的parent-child文檔關係處理,並提供瞭在Elasticsearch中使用腳本的相關知識。
第4章覆蓋瞭有關用戶體驗提升的相關話題。本章介紹瞭查詢建議(suggester),它能幫助修正查詢中的拼寫錯誤並構建高效的自動完成(autocomplete)機製。除此之外,通過實際的案例展示如何通過使用不同查詢類型和Elasticsearch的其他功能來提高查詢相關性。
第5章介紹瞭以下技術:如何選擇閤適的分片及副本數,路由是如何工作的,索引分片機製是如何工作的以及如何影響分片行為。同時介紹瞭什麼是查詢執行偏好,以及它是如何影響查詢執行的。
第6章描述如何修改Lucene評分以及如何選擇備用的評分算法。本章也介紹瞭Elasticsearch的準實時搜索和索引,事務日誌的使用,理解索引的段閤並,以及如何調整段閤並來適應應用場景。在本章最後,還將介紹Elasticsearch的緩存機製和請求打斷器,以避免齣現內存用盡的故障。
第7章介紹瞭什麼是發現、網關、恢復模塊,如何配置這些模塊,以及有哪些令人心煩的疑難點。還介紹瞭什麼是CatAPI,如何把數據備份到各種雲服務上(比如亞馬遜的AWS和微軟的Azure),以及如何從雲服務上恢復數據。最後還介紹瞭如何使用部落節點進行聯盟搜索。
第8章覆蓋瞭與Elasticsearch性能相關的各種主題,從使用文檔取值來優化字段數據緩存的內存使用,到JVM垃圾迴收器的工作原理,再到查詢基準測試,最後到如何擴展Elasticsearch以適應更高的索引量和查詢量場景。
第9章通過演示如何開發你自己的REST操作插件和查詢語言分析插件來介紹Elasticsearch的插件開發。
閱讀本書的必備資源本書寫作時采用瞭Elasticsearch的1.4.x版本,所有的範例代碼應該能在該版本下正常運行。除此之外,讀者需要一個能發送HTTP請求的命令行工具,例如curl,該工具在絕大多數操作係統上是可用的。請記住,本書的所有範例都使用瞭curl。如果讀者想使用其他工具,請注意檢查請求的格式,以保證你所選擇的工具能正確解析它。
除此之外,為瞭運行第9章的範例,需要讀者的機器上已安裝瞭JDK,並且需要一個編輯器來開發相關代碼(或者類似
深入理解Elasticsearch(原書第2版) 下載 mobi pdf epub txt 電子書 格式 2024
深入理解Elasticsearch(原書第2版) 下載 mobi epub pdf 電子書好好好好好好
評分公司采購的,不錯,送貨也快
評分京東活動很給力,一直關注的書這次終於下手瞭,可以看上一年半載的
評分不錯不錯不錯不錯不錯不錯
評分好好好好好好好好好好好好好好好好好好好
評分好棒棒棒棒棒棒棒棒棒棒棒棒11。。。。。
評分買瞭以後覺得衝動瞭,基本上就是個官方操作手冊翻譯版?
評分絕對的一本好書,值得一讀,買書上京東,京東品質值得信賴,靠譜放心。
評分經典書籍 必須買一本紙質書籍 經常學習 推薦購買
深入理解Elasticsearch(原書第2版) mobi epub pdf txt 電子書 格式下載 2024