Elasticsearch 數據搜索與分析實戰

王深湛

  • Elasticsearch 數據搜索與分析實戰-preview-1
  • Elasticsearch 數據搜索與分析實戰-preview-2
Elasticsearch 數據搜索與分析實戰-preview-1

買這商品的人也買了...

相關主題

商品描述

本書從Elasticsearch的功能和業務場景開始介紹,逐步深入講解Elasticsearch在數據搜索和數據分析領域的實戰應用,並詳細介紹Elasticsearch的Java高級客戶端編程方法和整個Elastic Stack技術生態體系。

本書共12章,第1章講述Elasticsearch的業務場景和安裝配置;第2章講述Elasticsearch內部實現的各種原理;第3章講述Elasticsearch索引的使用方法;第4章講述文本分析的過程和文本分析器的使用;第5章講述Elasticsearch支持的各種搜索方式;第6章講述使用聚集統計進行數據分析的方法;第7章講述索引之間存在父子關系時的解決方法;第8章講述Elasticsearch的Java高級客戶端編程方法;第9章講述Elasticsearch集群的搭建、優化、備份方法;第10~12章講述Elastic Stack各組件的配合使用。

本書內容通俗易懂,易於學習,既講理論原理又側重介紹開發實戰,很適合Java後端開發工程師、大數據開發工程師、Elasticsearch技術講師和學員及搜索引擎技術的愛好者閱讀。另外,本書也可以作為培訓機構的教材,用來指導Elasticsearch新手的入門學習。

作者簡介

武汉大学计算机硕士,长期专注于Java后端开发,擅长领域为微服务、全文检索和大数据分析。目前供职于中国科学院下某研究所担任高级研发工程师,长期在一线担任开发职位,项目经验丰富,热衷于开源事业,乐于做技术分享和交流。

目錄大綱

原理篇

第 1章 快速入門 03

1 1 Elasticsearch簡介 03

1 2 Elasticsearch的典型接入方式 04

1 2 1 將Elasticsearch作為數據源 04

1 2 2 給已有系統添加Elasticsearch 05

1 2 3 使用Elastic Stack 05

1 3 專有名詞解釋 06

1 4 安裝Elasticsearch 7 9 1 08

1 5 安裝Kibana調試Elasticsearch 09

1 6 Elasticsearch節點的重要配置 11

1 6 1 集群節點的配置方法和優先級 12

1 6 2 elasticsearch yml的重要配置 13

1 6 3 配置JVM的堆內存大小 15

1 7 本章小結 16

第 2章 深入原理 17

2 1 搜索引擎的基本原理 17

2 2 Elasticsearch集群的形成機制 19

2 2 1 集群節點的發現、選舉和引導過程 20

2 2 2 集群狀態的發布過程 20

2 3 索引分片的分配機制 21

2 3 1 分片的分配 21

2 3 2 分片分配的過程 22

2 3 3 分片分配的感知 25

2 3 4 分片分配的過濾 27

2 4 索引分片的恢復機制 28

2 4 1 分片的恢復 29

2 4 2 分片恢復的過程 29

2 4 3 減少不必要的分片恢復 32

2 5 索引數據的寫入過程 33

2 6 索引數據的搜索過程 35

2 7 本章小結 36

應用篇

第3章 索引數據 41

3 1 使用映射定義索引結構 41

3 1 1 映射的概念和使用 41

3 1 2 映射支持的常規字段類型 43

3 1 3 忽略映射中不合法的數據 48

3 1 4 字段復制和字段存儲 51

3 1 5 動態映射 54

3 2 索引中數據的增刪改查 60

3 2 1 使用REST端點對索引映射中的數據進行增刪改查 61

3 2 2 使用樂觀鎖進行並發控制 63

3 2 3 索引數據的批量寫入 65

3 3 索引數據的路由規則 68

3 3 1 索引數據路由的原理 69

3 3 2 使用自定義路由分發數據 69

3 4 索引的別名 73

3 4 1 別名的創建和刪除 73

3 4 2 別名配合數據過濾 74

3 4 3 別名配合數據路由 76

3 5 滾動索引 77

3 6 索引的狀態管理 80

3 6 1 清空緩存 80

3 6 2 刷新索引 81

3 6 3 沖洗索引 81

3 6 4 強制合並 82

3 6 5 關閉索引 82

3 6 6 凍結索引 83

3 7 索引的塊 83

3 8 索引模板 84

3 8 1 使用索引模板定製索引結構 84

3 8 2 使用模板組件簡化模板配置 88

3 9 索引的監控 90

3 9 1 監控索引的健康狀態 90

3 9 2 監控索引分片的段數據 91

3 9 3 監控索引分片的分配 93

3 9 4 監控索引分片的恢復 93

3 9 5 監控索引的統計指標 95

3 10 控制索引分片的分配 97

3 11 本章小結 98

第4章 文本分析 99

4 1 文本分析的原理 99

4 2 使用內置的分析器分析文本 100

4 2 1 標準分析器 100

4 2 2 簡單分析器 105

4 2 3 空格分析器 106

4 3 使用IK分詞器分析文本 108

4 3 1 安裝IK分詞器 108

4 3 2 在索引中使用IK分詞器 108

4 4 自定義文本分析器分析文本 112

4 4 1 字符過濾器 112

4 4 2 分詞器 115

4 4 3 分詞過濾器 119

4 4 4 給索引添加自定義分析器 124

4 5 查看文檔的詞條向量 127

4 6 keyword類型字段的標準化 131

4 7 本章小結 134

第5章 搜索數據 135

5 1 精準級查詢 136

5 1 1 術語查詢 136

5 1 2 多術語查詢 137

5 1 3 主鍵查詢 139

5 1 4 範圍查詢 140

5 1 5 存在查詢 142

5 1 6 前綴查詢 143

5 1 7 正則查詢 145

5 1 8 通配符查詢 146

5 2 全文檢索 147

5 2 1 匹配搜索 148

5 2 2 布爾前綴匹配搜索 150

5 2 3 短語搜索 151

5 2 4 短語前綴匹配搜索 152

5 2 5 多字段匹配搜索 152

5 2 6 查詢字符串搜索 153

5 3 經緯度搜索 156

5 3 1 圓形搜索 156

5 3 2 矩形搜索 158

5 3 3 多邊形搜索 160

5 4 復合搜索 161

5 4 1 布爾查詢 161

5 4 2 常量得分查詢 164

5 4 3 析取最大查詢 165

5 4 4 相關度增強查詢 166

5 5 搜索結果的總數 166

5 6 搜索結果的分頁 167

5 6 1 普通分頁 168

5 6 2 滾動分頁 168

5 6 3 Search after分頁 169

5 7 搜索結果的排序 171

5 8 篩選搜索結果返回的字段 172

5 9 高亮搜索結果中的關鍵詞 174

5 10 折疊搜索結果 175

5 11 解釋搜索結果 180

5 12 本章小結 181

第6章 聚集統計 183

6 1 度量聚集 183

6 1 1 平均值聚集 184

6 1 2 最大值和最小值聚集 185

6 1 3 求和聚集 186

6 1 4 統計聚集 186

6 1 5 基數聚集 187

6 1 6 百分比聚集 188

6 1 7 百分比等級聚集 190

6 1 8 頭部命中聚集 191

6 1 9 矩陣統計聚集 192

6 2 桶聚集 194

6 2 1 詞條聚集 194

6 2 2 範圍聚集 198

6 2 3 日期範圍聚集 200

6 2 4 直方圖聚集 202

6 2 5 日期直方圖聚集 204

6 2 6 缺失聚集 207

6 2 7 過濾器聚集 208

6 2 8 多過濾器聚集 209

6 3 管道聚集 210

6 3 1 平均桶聚集 211

6 3 2 求和桶聚集 212

6 3 3 最大桶和最小桶聚集 214

6 3 4 累計求和桶聚集 216

6 3 5 差值聚集 217

6 4 使用fielddata聚集text字段 219

6 5 使用全局有序編號加快聚集速度 221

6 6 給聚集請求添加後過濾器 222

6 7 本章小結 224

第7章 父子關聯 226

7 1 使用對象數組存在的問題 226

7 2 嵌套對象 229

7 2 1 在索引中使用嵌套對象 229

7 2 2 嵌套對象的搜索 231

7 2 3 嵌套對象的聚集 236

7 3 join字段 240

7 3 1 在索引中使用join字段 240

7 3 2 join字段的搜索 243

7 3 3 join字段的聚集 248

7 4 在應用層關聯數據 253

7 5 本章小結 255

第8章 Java高級客戶端編程 257

8 1 開發前的準備 257

8 2 建立索引並寫入數據 259

8 2 1 創建映射 259

8 2 2 寫入、修改、刪除數據 263

8 3 搜索數據 267

8 4 統計分析 274

8 5 為索引接入實時數據 278

8 6 本章小結 279

第9章 集群擴展和性能優化 280

9 1 節點的角色類型 280

9 2 在CentOS 7上搭建Elasticsearch集群 282

9 2 1 準備工作 282

9 2 2 安裝集群 284

9 2 3 驗證安裝 286

9 3 推薦的集群配置 288

9 4 監控集群 292

9 4 1 監控集群的狀態信息 292

9 4 2 監控集群的健康狀態 294

9 4 3 監控集群節點的統計指標 295

9 4 4 監控節點的熱點線程 298

9 4 5 查看慢搜索日誌 298

9 4 6 查看慢索引日誌 299

9 5 索引分片數的設置與橫向擴容 300

9 6 優化索引的寫入速度 303

9 6 1 避免寫入過大的文檔 303

9 6 2 合並寫入請求 304

9 6 3 適當增大寫入的線程數和索引緩沖區 307

9 7 優化搜索的響應速度 307

9 7 1 避免深度分頁 308

9 7 2 合並搜索請求 308

9 7 3 使用緩存加快搜索速度 311

9 7 4 控制搜索請求的路由 313

9 8 集群的重啟 314

9 8 1 全集群重啟 315

9 8 2 滾動重啟 316

9 9 集群的備份和恢復 317

9 9 1 搭建共享文件目錄 317

9 9 2 備份集群數據 319

9 9 3 恢復集群數據 322

9 9 4 刪除備份數據 323

9 9 5 自動化備份 323

9 10 遠程集群 325

9 10 1 配置遠程集群 325

9 10 2 搜索遠程集群的數據 327

9 11 本章小結 328

發散篇

第 10章 Logstash:數據的源泉 333

10 1 Logstash的工作原理 333

10 2 Logstash的安裝和目錄結構 334

10 3 Logstash的重要配置 335

10 4 Logstash採集腳本的結構 336

10 5 實戰舉例的執行 337

10 5 1 採集Nginx日誌數據到索引中 338

10 5 2 全量抽取表數據到索引中 340

10 5 3 增量抽取表數據到索引中 345

10 5 4 如何給敏感配置項加密 347

10 6 本章小結 347

第 11章 Kibana:數據可視化利器 349

11 1 在CentOS 7上安裝Kibana 349

11 2 用Kibana可視化管理數據 350

11 2 1 索引管理 350

11 2 2 快照備份和恢復管理 352

11 2 3 遠程集群管理 357

11 3 開發工具 358

11 3 1 REST端點控制台 358

11 3 2 搜索調試器 359

11 3 3 Grok正則模式調試器 360

11 4 數據可視化分析 360

11 4 1 Discover發現 360

11 4 2 Visualize可視化組件 362

11 4 3 Maps地圖 363

11 4 4 Dashboard大屏儀表盤 364

11 4 5 Canvas畫布 364

11 4 6 查看樣例數據 365

11 5 本章小結 367

第 12章 Beats家族:精細化數據採集 368

12 1 Beats家族在Elastic Stack中的職責 368

12 2 Filebeat的安裝和工作原理 369

12 3 filebeat yml的重要配置 370

12 4 Filebeat採集Nginx日誌到

Elasticsearch中 372

12 5 Filebeat採集日誌到Logstash中 375

12 6 本章小結 378