歡迎來到elasticsearch的世界并閱讀本書第2版。通過閱讀本書,我們将帶領你接觸與elasticsearch緊密相關的各種話題。請注意,本書不是為初學者寫的。筆者将本書作為《elasticsearch server, second edition》的續作和姊妹篇。相對于《elasticsearch server》,本書涵蓋了很多新知識,不過你偶爾也可以在本書中發現一些引自《elasticsearch server》的内容。
本書将探讨與elasticsearch和lucene相關的多個不同主題。首先,我們以介紹lucene和elasticsearch的基本概念作為開始,帶領讀者認識elasticsearch提供的衆多查詢方式。在這裡,将涉及和查詢相關的不同主題,比如結果過濾以及如何為特定場景選擇合适的查詢方式。顯然,elasticsearch不僅僅隻有查詢功能。是以,本書還将介紹elasticsearch新加入的聚集功能,以及衆多能夠賦予被索引資料意義的特性,并設法提供更佳的使用者查詢體驗。
對大多數使用者來說,查詢和資料分析是elasticsearch最吸引人的部分,不過這些還不是我們想要探索的全部内容。是以,本書在涉及索引架構時還會試圖跟讀者探讨一些額外話題,比如如何選擇合适的分片數和副本數,如何調整分片配置設定行為等。當談論elasticsearch和lucene之間的關系時,我們還将介紹不同的打分算法、算法之間的差異、如何選擇合适的存儲機制,以及為什麼需要做此選擇。
最後,我們還将觸及elasticsearch的管理功能,将探讨發現和恢複子產品,以及對人類友好的cat api。cat api可以幫助我們快速擷取相關的運維資訊,它的傳回資料組織成一種大多數人都易于閱讀的格式,無需進行json解析。我們還将認識和使用部落節點,它能夠為我們提供在多個節點間聯合查詢的能力。
因為本書的書名,我們無法忽略與性能相關的話題,是以我們決定用整整一章來探讨性能。我們談論了文檔取值及其相關改進,還介紹了垃圾回收器的工作方式,以及在垃圾回收器未能如我們期望般工作時可以做些什麼。最後,探讨了如何擴充elasticsearch以應對高索引量和查詢量的場景。
和本書第1版一樣,我們決定以開發elasticsearch插件的話題作為本書結尾。我們将展示如何建構apache maven項目,并開發兩個不同類型的插件—自定義rest操作插件和自定義分析插件。
假如你在讀完某些主題後對其産生濃厚的興趣,那麼這本書就是适合你的。希望你在讀完後能夠喜歡這本書。
[第1章 elasticsearch簡介
1.1.1 熟悉lucene
1.1.2 lucene的總體架構
1.1.3 分析資料
1.1.4 lucene查詢語言
<a href="https://yq.aliyun.com/articles/120294/">1.2 何為elasticsearch</a>
1.2.1 elasticsearch的基本概念
1.2.2 elasticsearch架構背後的關鍵概念
1.2.3 elasticsearch的工作流程
<a href="https://yq.aliyun.com/articles/120304/">1.3 線上書店示例</a>
<a href="https://yq.aliyun.com/articles/120306/">1.4 小結</a>
[第2章 查詢dsl進階
2.1.1 何時文檔被比對上
2.1.2 tf/idf評分公式
2.1.3 elasticsearch如何看評分
2.1.4 一個例子
<a href="https://yq.aliyun.com/articles/120333/">2.2 查詢改寫</a>
2.2.1 字首查詢示例
2.2.2 回到apache lucene
2.2.3 查詢改寫的屬性
<a href="https://yq.aliyun.com/articles/120347/">2.3 查詢模闆</a>
2.3.1 引入查詢模闆
2.3.2 mustache模闆引擎
2.3.3 把查詢模闆儲存到檔案
<a href="https://yq.aliyun.com/articles/120359/">2.4 過濾器的使用及作用原理</a>
2.4.1 過濾及查詢相關性
2.4.2 過濾器的工作原理
2.4.3 性能考量
2.4.4 後置過濾和過濾查詢
2.4.5 選擇正确的過濾方式
<a href="https://yq.aliyun.com/articles/120384/">2.5 選擇正确的查詢方式</a>
2.5.1 查詢方式分類
2.5.2 使用示例
<a href="https://yq.aliyun.com/articles/120387/">2.6 小結</a>