Elasticsearch 搜索引擎構建入門與實戰

Elasticsearch 搜索引擎構建入門與實戰

作者: 高印會
出版社: 機械工業
出版在: 2021-11-10
ISBN-13: 9787111694229
ISBN-10: 7111694228
裝訂格式: 平裝
總頁數: 316 頁





內容描述


本書從Elasticsearch的基本概念和原理講起,
然後系統介紹Elasticsearch的使用場景,帶領讀者近距離接觸Elasticsearch。
本書涵蓋客戶端的安裝和使用、索引的創建、文檔的操作、搜索匹配、搜索排序和聚合,
可以幫助讀者循序漸進地掌握Elasticsearch的相關知識。
本書共8章,分為3篇。
第1篇“Elasticsearch基礎”,主要介紹Elasticsearch的基礎知識和基本用法;
第2篇“Elasticsearch提高”,首先介紹文本搜索和排序原理,然後介紹聚合的使用方法;
第3篇“Elasticsearch實戰”,以酒店搜索為例,
詳細介紹Elasticsearch在實際搜索應用中涉及的相關技術,
幫助讀者全面了解搜索引擎,並提高開發水平。
本書重點介紹Elasticsearch的核心功能——搜索匹配和排序,
其中對中文匹配的實現用較大篇幅講解,便於讀者進行中文搜索的落地工作。
另外,結合具體實例講解排序功能,幫助讀者更加透徹地理解Elasticsearch排序算法的原理。
本書內容豐富,語言通俗易懂,講解圖文並茂,案例典型而實用,
適合Elasticsearch初學者和有一定基礎而想提高水平的進階人員閱讀,
另外還適合相關院校和培訓機構作為教材。


目錄大綱


推薦序
前言
第1篇 Elasticsearch基礎
第1章 Elasticsearch入門 2
1.1 Elasticsearch概述 2
1.1.1 Elasticsearch簡介 2
1.1.2 Elasticsearch的基本概念 3
1.1.3 Elasticsearch和關係型數據庫的對比 5
1.2 Elasticsearch的架構原理 7
1.2.1 節點職責 7
1.2.2 主分片和副分片 9
1.2.3 路由計算 10
1.2.4 文檔讀寫過程 10
1.3 Elasticsearch的應用場景 12
1.3.1 搜索引擎 12
1.3.2 推薦系統 12
1.3.3 二級索引 13
1.3.4 日誌分析 14
1.4 Elasticsearch的安裝 14
1.4.1 單機模式安裝 15
1.4.2 集群模式安裝 16
1.5 Elasticsearch搜索入門 17
1.5.1 創建索引 17
1.5.2 寫入文檔 18
1.5.3 根據_id搜索文檔 19
1.5.4 根據一般字段搜索文檔 19
1.5.5 根據文本字段搜索文檔 20
第2章 Elasticsearch客戶端實戰 22
2.1 Kibana客戶端簡介 22
2.1.1 Kibana的安裝 22
2.1.2 在Kibana中搜索文檔 23
2.2 Java客戶端簡介 24
2.2.1 Java客戶端的使用 25
2.2.2 Java帶驗證客戶端的使用 27
2.2.3 Java客戶端搜索文檔 28
2.3 Spring Boot客戶端簡介 31
2.3.1 創建Spring Boot客戶端 31
2.3.2 Spring Boot客戶端搜索文檔 32
2.4 Jest客戶端簡介 33
2.4.1 創建Jest客戶端 34
2.4.2 Jest客戶端搜索文檔 35
第3章 Elasticsearch基礎操作 37
3.1 索引操作 37
3.1.1 創建索引 37
3.1.2 刪除索引 38
3.1.3 關閉索引 38
3.1.4 打開索引 39
3.1.5 索引別名 39
3.2 映射操作 47
3.2.1 查看映射 47
3.2.2 擴展映射 48
3.2.3 基本的數據類型 49
3.2.4 複雜的數據類型 56
3.2.5 動態映射 61
3.2.6 多字段 61
3.3 文檔操作 64
3.3.1 單條寫入文檔 64
3.3.2 批量寫入文檔 65
3.3.3 更新單條文檔 67
3.3.4 批量更新文檔 69
3.3.5 根據條件更新文檔 70
3.3.6 刪除單條文檔 72
3.3.7 批量刪除文檔 73
3.3.8 根據條件刪除文檔 74
第4章 豐富的搜索功能 76
4.1 搜索輔助功能 76
4.1.1 指定返回的字段 76
4.1.2 結果計數 78
4.1.3 結果分頁 79
4.1.4 性能分析 81
4.1.5 評分分析 85
4.2 豐富的搜索匹配功能 86
4.2.1 查詢所有文檔 87
4.2.2 term級別查詢 88
4.2.3 布爾查詢 96
4.2.4 filter查詢原理 100
4.2.5 Constant Score查詢 102
4.2.6 Function Score查詢 104
4.2.7 全文搜索 106
4.2.8 基於地理位置查詢 112
4.2.9 搜索建議 115
4.3 按字段值排序 118
4.3.1 按普通字段值排序 119
4.3.2 按地理距離排序 121
第2篇 Elasticsearch提高
第5章 文本搜索 126
5.1 文本搜索簡介 126
5.1.1 文本的索引建立過程 126
5.1.2 文本的搜索過程 128
5.2 分析器簡介 129
5.2.1 字符過濾器 130
5.2.2 分詞器 131
5.2.3 分詞過濾器 131
5.3 分析器的使用 132
5.3.1 測試分析API 132
5.3.2 內置分析器 134
5.3.3 索引時使用分析器 135
5.3.4 搜索時使用分析器 136
5.3.5 自定義分析器 136
5.4 中文分析器 138
5.4.1 中文分詞介紹 139
5.4.2 IK分析器 140
5.4.3 HanLP分析器 144
5.5 使用同義詞 147
5.5.1 建立索引時使用同義詞 147
5.5.2 查詢時使用同義詞 149
5.6 使用停用詞 154
5.6.1 使用停用詞過濾器 154
5.6.2 在內置分析器中使用停用詞 156
5.6.3 在IK分析器中使用停用詞 156
5.6.4 在HanLP分析器中使用停用詞 159
5.7 拼音搜索 161
5.7.1 拼音分析器插件的安裝 162
5.7.2 拼音分析器插件的使用 163
5.8 高亮顯示搜索 165
5.8.1 初步使用高亮顯示搜索 166
5.8.2 選擇高亮顯示搜索策略 168
5.8.3 在Java客戶端中進行高亮顯示搜索 170
5.9 拼寫糾錯 171
5.9.1 使用Elasticsearch進行拼寫糾錯 171
5.9.2 更精準的拼寫糾錯 174
第6章 搜索排序 177
6.1 相關性排序 177
6.1.1 TF-IDF模型 177
6.1.2 向量空間模型 178
6.1.3 BM25算法簡介 179
6.1.4 BM25實例解析 181
6.1.5 BM25參數調節 183
6.1.6 分佈式場景對排序的影響 184
6.1.7 使用其他相關性算法 185
6.2 查詢時設置權重 186
6.2.1 查詢時boost參數的設置 186
6.2.2 在Java客戶端中使用boost參數 192
6.2.3 boosting查詢 193
6.2.4 在Java客戶端中使用boosting查詢 197
6.3 Function Score查詢簡介 198
6.3.1 簡單函數 198
6.3.2 函數計算關係 202
6.3.3 衰減函數 203
6.4 Script Score查詢簡介 207
6.4.1 Painless簡介 207
6.4.2 在Script Score中使用Painless 209
6.4.3 使用數組和集合 213
6.4.4 使用文檔數據 214
6.4.5 向腳本傳參 217
6.4.6 在Script Score中使用函數 219
6.4.7 在Java客戶端中使用Script Score 224
6.4.8 練習Painless 225
6.5 二次打分 226
6.5.1 二次打分簡介 226
6.5.2 使用示例 226
6.5.3 在Java客戶端中使用二次打分 229
第7章 聚合 231
7.1 聚合指標 233
7.1.1 常見的統計指標 233
7.1.2 空值處理 236
7.2 桶聚合 239
7.2.1 單維度桶聚合 240
7.2.2 多維度桶嵌套聚合 246
7.2.3 地理距離聚合 249
7.3 聚合方式 253
7.3.1 直接聚合 253
7.3.2 先查詢再聚合 254
7.3.3 前過濾器 255
7.3.4 後過濾器 257
7.4 聚合排序 258
7.4.1 按文檔計數排序 259
7.4.2 按聚合指標排序 260
7.4.3 按分組key排序 262
7.5 聚合分頁 264
7.5.1 Top hits聚合 264
7.5.2 Collapse聚合 268
第3篇 Elasticsearch實戰
第8章 搜索實戰 272
8.1 項目簡介 272
8.1.1 背景簡介 272
8.1.2 搜索建議功能簡介 272
8.1.3 搜索功能簡介 273
8.1.4 排序功能簡介 274
8.2 技術方案 275
8.2.1 總體架構設計 275
8.2.2 組件簡介 276
8.2.3 搜索建議方案 278
8.2.4 匹配方案 279
8.2.5 排序方案 280
8.3 搜索建議功能的實現 280
8.3.1 索引創建 280
8.3.2 後端服務 281
8.3.3 索引初始化 282
8.3.4 搜索建議服務 286
8.4 搜索功能的實現 288
8.4.1 項目創建 288
8.4.2 索引創建 289
8.4.3 數據初始化 290
8.4.4 整體工作 291
8.4.5 獲取總頁數 292
8.4.6 查詢構建 293
8.4.7 結果處理和封裝 296
8.4.8 對搜索排序進行打分 298
8.5 前端功能的實現 299
8.5.1 項目創建 299
8.5.2 請求轉發 300
8.5.3 搜索建議交互 300
8.5.4 搜索交互 301


作者介紹


高印會 曾就職於去哪兒網和藝龍網等知名互聯網公司,任高級開發工程師和搜索項目負責人,目前擔任玖富集團大數據專家。從事過搜索、推薦和大數據處理等相關工作,擅長基於Elasticsearch的搜索、推薦算法和大數據處理等技術。多年來以內訓師的身份參加企業內訓工作,積累了豐富的教學經驗,善於站在學習者的角度看待問題,擅長將復雜問題簡單化。




相關書籍

Oracle RAC 12.2架構高可用數據庫權威指南:概念、管理、優化和故障排除

作者 印]K.柯普萊克裡什汗(K. Gopalakrishnan) [美]山姆·R.阿拉帕提(Sam R. Alapati) ;史躍東 高強 郝文瀚 譯

2021-11-10

MySQL 雲端資料庫 設計寶典 (舊名: MySQL 5.X/6.X 雲端資料庫 SQL 設計技術寶典)

作者 孫惠民

2021-11-10

MySQL數據庫管理實戰

作者 甘長春 孟飛

2021-11-10