資深軟件開發專傢、架構師撰寫,係統且深入闡釋ElasticSearch涉及的工具、方法、原則和實踐
深入剖析ElasticSearch應用過程中遇到的各個層麵的問題,涉及分布式索引機製、係統監控及性能優化、用戶體驗改善、Java API應用,以及自定義插件開發
資深軟件開發專傢、架構師撰寫,係統且深入闡釋ElasticSearch涉及的工具、方法、原則和實踐,深入剖析ElasticSearch應用過程中遇到的各個層麵的問題,涉及分布式索引機製、係統監控及性能優化、用戶體驗改善、Java API應用,以及自定義插件開發等,能為工程師與架構師快速提高ElasticSearch水平提供有效指導。
本書共9章,第1章介紹Apache Lucene的工作方式、ElasticSearch的基本概念以及ElasticSearch的工作機製;第2章描述Lucene評分機製、如何進行查詢重寫,以及ElasticSearch的批處理API和如何使用過濾器來優化查詢;第3章描述如何修改Lucene評分,如何使用不同的倒排索引格式來改變索引字段的結構;第4章闡述如何選擇恰當的索引分片、路由工作機製、索引分片機製;第5章介紹如何為具體應用選擇正確的目錄實現,同時闡述發現、網關、恢復模塊及其配置方式,以及調優ElasticSearch的緩存機製;第6章介紹JVM垃圾收集的工作原理、重要性以及如何調優;第7章介紹幫助修正查詢中的拼寫錯誤以及構建高效的自動完成機製——查詢建議,還展示如何通過使用不同查詢類型和ElasticSearch的其他功能來提高查詢相關性;第8章重點闡釋ElasticSearch的JAVA API;第9章通過演示如何開發你自己的河流和語言處理插件來介紹ElasticSearch的插件開發。
Rafa· Ku,資深軟件開發專傢,現任Sematext集團公司谘詢專傢及軟件工程師。他專注於Apache Lucene、Solr、ElasticSearch、Hadoop stack等開源技術,擁有超過11年的軟件研發經驗。他還是solr.pl網站的聯閤創始人,該網站緻力於幫助人們解決Solr、Lucene的相關問題。
Marek Rogozińskis,資深軟件架構師和谘詢師,擁有超過10年的行業從業經驗,專注基於開源搜索引擎(如Solr、ElasticSearch等)的解決方案及大數據分析技術(如Hadoop、HBase、Twitter Storm等)。他是solr.pl網站的聯閤創始人,除本書外,還著有《ElasticSearch Server》。
ElasticSearch是一個優秀的開源分布式搜索引擎,同時有良好的社區和商業支持。對於中小型的垂直搜索引擎,ElasticSearch是一個不錯的選擇。本書是一本ElasticSearch的進階教材,深入剖析DSL、索引控製、分布式實現、係統運維等高級內容,特彆適閤深入研究ElasticSearch。
—— 徐川 明星衣櫥CTO,前雅虎高級工程師
ElasticSearch的齣現,讓開源搜索産品真正進入分布式時代。本書是一本不可多得的關於ElasticSearch的著作,既對ElasticSearch的全文索引、IR模型、分布式機製有深入剖析,又有生動翔實的示例,能幫助讀者快速提升在該領域的技術水平。
—— 高劍林 騰訊(架構平颱部)資深技術專傢
除瞭用於搜索,ElasticSearch也是日誌存儲、離綫數據分析挖掘的利器。本書深入淺齣,案例豐富,在信息檢索模型、準實時搜索、分布式架構、係統優化等諸多方麵都有精彩的論述。
—— 李偉博士 微軟(bing)數據挖掘組高級工程師
很高興看到《Mastering ElasticSearch》中文版麵市,本書對ElasticSearch的分布式係統架構、係統調優有較深入的探討,是一本進階的好讀物,其中一些係統設計思維對於文件係統研發人員也是有所裨益的。
—— 許加強 前IBM(GPFS)資深工程師
盡管ElasticSearch是一個開源搜索産品,它在百度也被廣泛應用。目前已經覆蓋到20多個業務綫。這本書針對性較強,既不乏典型實例,也有一定的理論深度。非常適閤進階用戶閱讀。
—— 陳鐵兵 百度網頁搜索部高級工程師
譯者序
前言
緻謝
作者簡介
評審者簡介
第1章 ElasticSearch簡介1
1.1 Apache Lucene簡介1
1.1.1 熟悉Lucene2
1.1.2 Lucene的總體架構2
1.1.3 分析你的數據3
1.1.4 Lucene查詢語言4
1.2 ElasticSearch簡介6
1.2.1 ElasticSearch的基本概念7
1.2.2 ElasticSearch架構背後的關鍵概念8
1.2.3 ElasticSearch的工作流程9
1.3 小結13
第2章 查詢DSL進階14
2.1 Apache Lucene默認評分公式解釋14
2.1.1 何時文檔被匹配上15
2.1.2 TF/IDF評分公式15
2.1.3 ElasticSearch如何看評分16
2.2 查詢改寫17
2.2.1 前綴查詢範例17
2.2.2 迴顧Apache Lucene19
2.2.3 查詢改寫的屬性20
2.3 二次評分21
2.3.1 理解二次評分21
2.3.2 範例數據21
2.3.3 查詢22
2.3.4 二次評分查詢的結構22
2.3.5 二次評分參數配置23
2.3.6 小結24
2.4 批量操作24
2.4.1 批量取24
2.4.2 批量查詢26
2.5 排序27
2.5.1 基於多值字段的排序28
2.5.2 基於多值geo字段的排序28
2.5.3 基於嵌套對象的排序30
2.6 數據更新API31
2.6.1 簡單字段更新31
2.6.2 使用腳本按條件更新32
2.6.3 使用更新 API創建或刪除文檔33
2.7 使用過濾器優化查詢33
2.7.1 過濾器與緩存34
2.7.2 詞項查找過濾器36
2.8 ElasticSearch切麵機製中的過濾器與作用域40
2.8.1 範例數據40
2.8.2 切麵計算和過濾41
2.8.3 過濾器作為查詢的一部分42
2.8.4 切麵過濾器44
2.8.5 全局作用域45
2.9 小結47
第3章 底層索引控製48
3.1 改變Apache Lucene的評分方式48
3.1.1 可用的相似度模型49
3.1.2 為每字段配置相似度模型49
3.2 相似度模型配置50
3.2.1 選擇默認的相似度模型51
3.2.2 配置被選用的相似度模型52
3.3 使用編解碼器53
3.3.1 簡單使用範例53
3.3.2 工作原理解釋54
3.3.3 可用的倒排錶格式55
3.3.4 配置編解碼器56
3.4 準實時、提交、更新及事務日誌58
3.4.1 索引更新及更新提交59
3.4.2 事務日誌60
3.4.3 準實時讀取62
3.5 深入理解數據處理62
3.5.1 輸入並不總是進行文本分析62
3.5.2 範例的使用65
3.5.3 索引期更換分詞器67
3.5.4 搜索時更換分析器68
3.5.5 陷阱與默認分析68
3.6 控製索引閤並68
3.6.1 選擇正確的閤並策略69
3.6.2 閤並策略配置70
3.6.3 調度72
3.7 小結73
第4章 分布式索引架構74
4.1 選擇閤適的分片和副本數74
4.1.1 分片和過度分配75
4.1.2 一個過度分配的正麵例子75
4.1.3 多分片與多索引76
4.1.4 副本76
4.2 路由76
4.2.1 分片和數據77
4.2.2 測試路由功能77
4.2.3 索引時使用路由80
4.2.4 彆名83
4.2.5 多個路由值83
4.3 調整默認的分片分配行為84
4.3.1 分片分配器簡介84
4.3.2 even_shard 分片分配器84
4.3.3 balanced分片分配器85
4.3.4 自定義分片分配器85
4.3.5 裁決者86
4.4 調整分片分配88
4.4.1 部署意識89
4.4.2 過濾91
4.4.3 運行時更新分配策略92
4.4.4 確定每個節點允許的總分片數93
4.4.5 更多的分片分配屬性96
4.5 查詢執行偏好97
4.6 應用我們的知識99
4.6.1 基本假定99
4.6.2 配置100
4.6.3 變化來瞭104
4.7 小結105
第5章 管理ElasticSearch106
5.1 選擇正確的目錄實現-存儲模塊106
5.2 發現模塊的配置109
5.2.1 Zen發現109
5.2.2 亞馬遜EC2發現111
5.2.3 本地網關114
5.2.4 恢復配置115
5.3 索引段統計116
5.3.1 segments API簡介116
5.3.2 索引段信息的可視化118
5.4 理解ElasticSearch緩存119
5.4.1 過濾器緩存119
5.4.2 字段數據緩存121
5.4.3 清除緩存126
5.5 小結127
第6章 故障處理129
6.1 瞭解垃圾迴收器129
6.1.1 Java內存130
6.1.2 處理垃圾迴收問題131
6.1.3 在類UNIX係統中避免內存交換135
6.2 關於I/O調節136
6.2.1 控製IO節流136
6.2.2 配置136
6.3 用預熱器提升查詢速度138
6.3.1 為什麼使用預熱器138
6.3.2 操作預熱器138
6.3.3 測試預熱器141
6.4 熱點綫程144
6.4.1 澄清熱點綫程API的用法誤區145
6.4.2 熱點綫程API的響應信息145
6.5 現實場景146
6.5.1 越來越差的性能146
6.5.2 混雜的環境和負載不平衡148
6.5.3 我的服務器齣故障瞭149
6.6 小結150
第7章 改善用戶搜索體驗151
7.1 改正用戶拼寫錯誤151
7.1.1 測試數據152
7.1.2 深入技術細節152
7.1.3 completion suggester168
7.2 改善查詢相關性172
7.2.1 數據172
7.2.2 改善相關性的探索之旅174
7.3 小結188
第8章 ElasticSearch Java API189
8.1 ElasticSearch Java API簡介189
8.2 代碼190
8.3 連接到集群191
8.3.1 成為ElasticSearch節點191
8.3.2 使用傳輸機連接方式192
8.3.3 選擇閤適的連接方式193
8.4 API剖析194
8.5 CRUD操作195
8.5.1 讀取文檔195
8.5.2 索引文檔197
8.5.3 更新文檔199
8.5.4 刪除文檔201
8.6 ElasticSearch查詢203
8.6.1 準備查詢請求203
8.6.2 構造查詢203
8.6.3 分頁206
8.6.4 排序207
8.6.5 過濾207
8.6.6 切麵計算208
8.6.7 高亮209
8.6.8 查詢建議209
8.6.9 計數210
8.6.10 滾動211
8.7 批量執行多個操作211
8.7.1 批量操作211
8.7.2 根據查詢刪除文檔212
8.7.3 Multi GET212
8.7.4 Multi Search212
8.8 Percolator213
8.9 explain API214
8.10 構造JSON格式的查詢和文檔214
8.11 管理API216
8.11.1 集群管理API216
8.11.2 索引管理API219
8.12 小結226
第9章 開發ElasticSearch插件227
9.1 建立Apache Maven項目結構227
9.1.1 瞭解基本知識228
9.1.2 Maven Java項目的結構228
9.1.3 POM的理念228
9.1.4 運行構建過程229
9.1.5 引入Maven裝配插件230
9.2 創建一個自定義river插件232
9.2.1 實現細節232
9.2.2 測試river238
9.3 創建自定義分析插件240
9.3.1 實現細節240
9.3.2 測試自定義分析插件247
9.4 小結249
歡迎來到ElasticSearch的世界。通過閱讀本書,我們將帶你接觸與ElasticSearch緊密相關的各種話題。本書會從介紹Apache Lucene及ElasticSearch的基本概念開始。即使讀者熟悉這些知識,簡略的介紹也是很有必要的,掌握背景知識對於全麵理解集群構建、索引文檔、搜索這些操作背後到底發生瞭什麼至關重要。
之後,讀者將學習Lucene的評分過程是如何工作的,如何影響評分,以及如何讓ElasticSearch選擇不同的評分算法。本書也將介紹什麼是查詢重寫以及進行查詢重寫的原因。除此之外,本書還將介紹如何修改查詢來影響ElasticSearch的緩存功能以及如何最大限度地使用緩存。
接著你將學習索引控製的相關知識:如何通過設置不同的倒排錶格式(posting format)來改變索引字段的寫入模式;索引的段閤並機製和段閤並的重要性,以及如何調整段閤並來適應應用場景;深入探討索引分片(shard)的分配機製、路由機製,以及當數據量、查詢量日漸增長時的應對策略。
當然本書也不會遺漏垃圾收集的相關內容,包括垃圾收集的工作原理、觸發時間以及如何調整垃圾收集的行為。此外,本書也將涉及ElasticSearch狀態診斷的介紹,例如,描述係統段閤並狀況,ElasticSearch在高級API背後是如何工作以及如何限製I/O操作的。然而,本書並不僅限於討論ElasticSearch的底層機製,同時也涵蓋瞭如何改進用戶搜索體驗,例如處理拼寫檢查,高效地輸入自動提示以及如何改進查詢等內容。
除瞭前麵介紹的那些,本書還將指導讀者熟悉ElasticSearch的Java API,並演示它的使用方法,其中不僅包含CRUD(增刪查改)等基本功能,同時也包含集群、索引的維護與操作等高級功能。最後,讀者將通過開發一個用於數據索引的自定義river插件,以及一個在檢索期和索引期用於數據分析的自定義分析插件來深入瞭解ElasticSearch的擴展機製。
本書主要內容第1章介紹Apache Lucene的工作方式,以及ElasticSearch的基本概念,並演示Elastic-Search的內部工作機製。
第2章描述Lucene評分過程是如何工作的,為什麼要進行查詢重寫,以及查詢二次評分(rescore)是如何工作的。除此之外,還將介紹ElasticSearch的批處理API,以及如何使用過濾器(filter)來優化查詢。
第3章描述如何修改Lucene評分,並使用不同的倒排索引格式來改變索引字段的結構。此外還會介紹ElasticSearch的準實時搜索和索引,事務日誌的使用,理解索引的段閤並以及如何調整段閤並來適應應用場景。
第4章介紹以下技術:如何選擇恰當的索引分片及復製(replicas)數量,路由是如何工作的,索引分片機製是如何工作的以及如何影響分片行為。同時還介紹ElasticSearch如何進行係統初始配置,以及當數據量和查詢量急劇增長時如何調整係統配置。
第5章介紹如何為具體應用選擇正確的目錄(directory)實現,什麼是發現(Discovery)、網關(Gateway)、恢復(Recovery)模塊,如何配置這些模塊,以及有哪些令人睏擾的疑難點。最後介紹如何通過ElasticSearch來查看索引段信息,以及如何進行ElasticSearch緩存機製的調優。
第6章介紹JVM垃圾收集的工作原理和重要意義,以及如何對它進行調優。同時還介紹如何控製ElasticSearch的I/O操作數量,什麼是預熱器(warmer)以及如何使用它,最後介紹如何診斷ElasticSearch中的問題。
第7章介紹查詢建議(suggester),它能幫助修正查詢中的拼寫錯誤以及構建高效的自動完成(autocomplete)機製。除此之外,將通過實際的案例展示如何使用不同查詢類型和ElasticSearch的其他功能來提高查詢相關性。
第8章覆蓋ElasticSearch的Java API,不僅包括一些基本API,諸如連接到ElasticSearch集群、單條索引或批量索引、檢索文檔等,而且涵蓋ElasticSearch暴露的一些用於控製集群的API。
第9章通過演示如何開發你自己的河流(river)和語言處理(language)插件來介紹ElasticSearch的插件開發。
閱讀本書的必備資源本書基於ElasticSearch 0.90.x版本,所有範例代碼均能在該版本下正常運行。除此之外,讀者需要一個能發送HTTP請求的命令行工具,如curl,該工具在絕大多數操作係統上是可用的。請記住,本書的所有範例都使用瞭curl,如果讀者想使用其他工具,請注意檢查請求的格式從而保證所選擇的工具能正確解析它。
除此之外,為瞭運行第8章和第9章的範例,要求已安裝JDK,並且需要一個編輯器來開發相關代碼(或者類似Eclipse的Java IDE)。書中這兩章都使用Apache Maven進行代碼的管理與構建。
本書的目標讀者本書的目標讀者是那些雖然熟悉ElasticSearch基本概念但又想深入瞭解其本身,同時也對Apache Lucene、JVM垃圾收集感興趣的ElasticSearch用戶和發燒友。除此之外,想瞭解如何改進查詢相關性,如何使用ElasticSearch Java API,如何編寫自定義插件的讀者,也會發現本書的趣味性和實用性。
如果你是ElasticSearch的初學者,對查詢和索引這些基本概念都不熟悉,那麼你會發現本書的絕大多數章節難以理解,因為這些內容假定讀者已經具備瞭相關背景知識。這種情況下,建議參考Packt齣版社上一本關於ElasticSearch的圖書《ElasticSearch Server》。
客戶支持親愛的讀者,請隨時瀏覽http://www.elasticsearchserverbook.com,這裏列齣瞭本書最新的勘誤錶,以及相關的擴展閱讀。
範例代碼下載如果讀者通過http://www.packtpub.com賬號購買瞭Packt圖書,可直接在本網站下載範例代碼。如果你采用瞭其他購買方式,可登錄http://www.packtpub.com/support並注冊賬號,我們將通過E-mail將代碼發送給你。
Acknowledgements 緻 謝Rafa Ku的緻謝本書正是我在完成《ElasticSearch Server》一書以後的下一個寫作目標。幸運的是,我順利實現瞭這個目標。我並不想逐一介紹所有主題,而是精選瞭一部分來闡述和分享我所瞭解的知識。與《ElasticSearch Server》類似,我也不會在本書中囊括所有的主題,畢竟很多小細節並不是那麼重要(這依賴具體的使用案例),因此會忽略這部分內容。盡管如此,我還是希望讀者能輕鬆獲取所有ElasticSearch、Apache Lucene的相關知識細節,並能輕鬆快速地掌握感興趣的知識。
在此,我想感謝我的傢庭,我在電腦屏幕前全身心投入本書寫作的那些日日夜夜裏,他們錶現齣極大的耐心,他們是我最堅強的後盾。
同樣也要感謝Sematext所有的同事,尤其是Otis,感謝他為我付齣時間,並讓我深刻認識到Sematext是一個非常適閤我的公司。
最後,非常誠摯地感謝所有ElasticSearch、Lucene項目的創建者和開發者,感謝他們傑齣的工作和對開源項目的熱情。沒有他們,就沒有本書的誕生,沒有他們,開源搜索引擎就不會有現在這種活力。再次感謝!
Marek Rogoziński的緻謝像往常一樣,撰寫本書是件非常艱巨的任務。這本書不僅涉及更多的高級話題,同時ElasticSearch的代碼也在隨時改進。ElasticSearch的開發速度並不會變緩,可以毫不誇張地說,每天都會有新東西呈現。請記住,本書是前一本著作的補充和延續,因此,這意味著我們會忽略上一本著作中已經涉及的內容,並補充該書遺漏的內容。現在看看你是否會成功吧!感謝大傢。
感謝ElasticSearch、Lucene及所有相關産品的創建者。
同時也要感謝本書的寫作和齣版團隊。尤其要感謝幫助檢查錯誤、校稿、消除錶達歧義的夥伴們。
最後,感謝在本書寫作期間給予我堅定支持的所有的朋友。
這本書的封麵設計簡潔大氣,采用深邃的藍色調,中央醒目的“深入理解Elasticsearch”幾個字,字體選擇粗獷有力,仿佛預示著將帶領讀者踏上一段探索Elasticsearch核心奧秘的旅程。我是在一次技術交流會上偶然得知這本書的,當時幾位資深的開發者都在推薦,說這本書對理解Elasticsearch的底層原理有著不可替代的作用。我是一名在實際工作中頻繁使用Elasticsearch的工程師,雖然日常 CRUD 操作不成問題,但對於一些性能瓶頸和優化技巧,總感覺隔靴搔癢,難以深入。我一直渴望能有一本真正能解答我心中疑惑的書,而不是泛泛而談的入門教程。當看到這本書的標題時,我便被深深吸引。從“深入理解”這四個字,我能感受到作者的野心,也寄托瞭我對技術提升的期望。我希望這本書能夠不僅僅停留在 API 的講解,而是能夠剖析 Elasticsearch 的架構設計,揭示其背後的數據存儲、索引構建、搜索查詢、分布式協調等機製。例如,我一直對 Elasticsearch 的倒排索引是如何構建和維護的感到好奇,文檔的更新和刪除又會對索引産生怎樣的影響?在分布式環境中,分片和副本是如何協同工作的?查詢時,又是如何進行高效的檢索和排序的?這些都是我渴望在這本書中找到答案的關鍵點。
評分這本書給我的感覺,就像一位經驗豐富的導師,在你迷茫的時候,伸齣援手,指引你前進的方嚮。我是在一次項目遇到 Elasticsearch 性能瓶頸時,抱著試一試的心態購買瞭這本書。當時,我們的大規模數據查詢響應緩慢,甚至齣現超時的情況。我嘗試瞭各種網上的優化方案,但效果都不盡如人意。翻閱此書後,我纔恍然大悟。作者在關於“ Lucene 核心原理”的部分,詳細講解瞭倒排索引的構建過程,以及詞項(term)的存儲和檢索機製。他用圖文並茂的方式,展示瞭文檔如何被分解為詞項,以及這些詞項如何被組織成一個個倒排列錶。讓我印象深刻的是,作者還深入剖析瞭不同類型的查詢(如 term query, match query, fuzzy query)在 Lucene 底層是如何被解析和執行的,以及它們各自的性能開銷。這讓我明白瞭為什麼我們的某些查詢會特彆慢,原來是查詢的類型和數據本身的特性相互作用的結果。這本書不僅教會我“是什麼”,更教會我“為什麼”,讓我能夠從根本上理解問題,而不是僅僅停留在錶麵的現象。
評分初讀此書,我立刻被作者那種娓娓道來的敘述風格所摺服。他沒有采用枯燥的技術術語堆砌,而是通過生動的比喻和生活化的場景,將復雜的概念一一呈現。例如,在講解 Elasticsearch 的分布式特性時,作者巧妙地將節點比作“小鎮上的居民”,而索引則像是“村莊的圖書館”。每個節點都有自己的職責,它們通過“信息互通”的方式來保證數據的完整性和可用性。這種講解方式,大大降低瞭理解門檻,讓我這個非科班齣身的技術人員也能輕鬆地跟上作者的思路。我尤其喜歡作者在介紹索引優化時,那種庖丁解牛般的分析。他沒有簡單地羅列一些配置參數,而是深入到索引的生命周期,從創建、更新到查詢,每一個環節都進行瞭細緻的剖析。他講解瞭如何通過閤理的分片策略來提升查詢性能,如何通過優化 mapping 來減少存儲空間並加快檢索速度,甚至還提到瞭如何利用 .NET SDK 來實現更高效的批量操作。這些內容,對我日常工作中遇到的性能問題提供瞭非常有價值的指導,讓我看到瞭解決問題的新的方嚮。
評分這本書的價值,遠遠超齣瞭我的預期。我原本以為它隻是一本技術手冊,但讀完之後,我纔發現它更像是一部 Elasticsearch 的“史詩”。作者不僅講解瞭 Elasticsearch 的技術原理,還融入瞭其發展曆程和社區的演變。他通過迴顧 Elasticsearch 發展過程中遇到的技術挑戰,以及社區是如何通過創新來解決這些挑戰的,讓我對這項技術有瞭更深的敬畏之情。例如,在講解 Elasticsearch 的聚閤(aggregations)功能時,作者並沒有簡單地列舉各種聚閤類型,而是追溯瞭 Elasticsearch 在處理復雜統計分析需求時的技術演進,以及它是如何通過優化的數據結構和算法來高效地完成這些計算的。我尤其喜歡作者在講解“搜索調優”那一章節時,那種係統性的思維方式。他從查詢的入口開始,一步步深入到索引層、 Lucene 層,甚至到 JVM 層,全方位地展示瞭可能影響搜索性能的因素,並提供瞭相應的調優策略。這讓我感覺,自己仿佛也擁有瞭一雙“火眼金睛”,能夠洞察 Elasticsearch 內部的每一個細微之處。
評分對於我這樣一名對 Elasticsearch 抱有極大興趣,但又苦於沒有係統學習路徑的開發者來說,這本書無疑是及時雨。它不像其他入門書籍那樣,隻停留在 API 的介紹,而是真正地將我帶入瞭 Elasticsearch 的“靈魂深處”。我特彆欣賞作者在講解數據模型設計時的嚴謹性。他不僅僅是告訴你“怎麼做”,更重要的是闡述瞭“為什麼這麼做”背後的邏輯。例如,在關於 mapping 的設計部分,他詳細地解釋瞭不同字段類型(如 text, keyword, numeric, date)的內部存儲和索引方式,以及它們對查詢性能和存儲空間的影響。他強調瞭避免過度設計,並根據實際查詢需求來選擇最閤適的 mapping,這避免瞭我們在實際工作中可能遇到的“甜蜜的陷阱”。此外,作者還花費瞭大量的篇幅來講解 Elasticsearch 的集群管理和容錯機製,包括節點角色、分片分配、選舉機製等。這對於我們理解 Elasticsearch 的穩定性和可用性至關重要。讓我感覺,作者真的是站在一個全局的視角,將 Elasticsearch 的方方麵麵都進行瞭深刻的剖析。
評分很專業的樣子,有些還沒有看懂
評分基於0.9版本,版本過低。
評分書很好包裝也很好!
評分書的質量沒的說,配貨速度快,贊一個
評分貨收到瞭,還沒用,感覺還不錯。
評分湊字數湊字數湊字數湊字數湊字數湊字數
評分看起來不錯,到的時候還有塑封
評分最近在學ES的,,不錯對自己有幫助
評分最近在學ES的,,不錯對自己有幫助
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有