目錄
前言
第1章 Elasticsearch開發搜索引擎應用 1
1.1 搜索引擎開發需求 1
1.2 準備開發環境 1
1.2.1 Windows命令行cmd 1
1.2.2 在Windows下使用Java 3
1.2.3 Linux終端 5
1.2.4 在Linux下使用Java 9
1.2.5 Eclipse集成開發環境 10
1.3 瞭解Elasticsearch 10
1.3.1 JSON數據格式 11
1.3.2 Elasticsearch基本概念 12
1.3.3 HTTP協議 13
1.4 Elasticsearch安裝和配置 16
1.4.1 安裝Elasticsearch 16
1.4.2 運行Elasticsearch作為服務進程 19
1.5 實現一個簡單的網站搜索 21
1.5.1 定義索引結構 23
1.5.2 導入數據 26
1.5.3 查詢API 27
1.5.4 實現搜索界麵 29
1.6 本章小結 35
第2章 開發中文搜索引擎 36
2.1 中文分詞原理 36
2.1.1 長匹配方法 36
2.1.2 自己寫分析器 42
2.1.3 概率語言模型的分詞方法 44
2.1.4 中文分詞插件原理 52
2.1.5 開發中文分詞插件 54
2.1.6 支持Elasticsearch的插件 57
2.1.7 中文分析器提供者 59
2.1.8 字詞混閤索引 61
2.2 提高分詞準確度 63
2.3 本章小結 65
第3章 Mapping詳解 66
3.1 索引模式 66
3.1.1 創建模式 66
3.1.2 修改模式 68
3.2 Mapping數據類型 69
3.3 Mapping參數 70
3.4 動態Mapping 71
3.4.1 使用動態Mapping 72
3.4.2 實現原理 72
3.5 本章小結 74
第4章 深入源碼分析 75
4.1 Lucene源碼分析 75
4.1.1 使用Lucene 75
4.1.2 Ivy管理依賴項 77
4.1.3 源碼結構介紹 77
4.1.4 並發控製 82
4.2 啓動搜索服務 88
4.3 Guice框架 89
4.4 日期和時間庫——Joda-Time 91
4.5 Transport模塊 91
4.6 綫程池 92
4.7 模塊 93
4.8 Netty通信框架 93
4.9 緩存 94
4.10 分布式 95
4.11 Zen發現機製 95
4.12 聯閤搜索 97
4.13 JVM字節碼 98
4.13.1 編譯代碼 99
4.13.2 同步相關指令 99
4.14 本章小結 100
第5章 提高搜索相關性 102
5.1 嚮量空間檢索模型 102
5.2 BM25檢索模型 105
5.2.1 使用BM25檢索模型 108
5.2.2 參數調優 108
5.3 學習評分 109
5.3.1 基本原理 109
5.3.2 準備數據 110
5.3.3 Elasticsearch學習排名 112
5.4 查詢意圖識彆 112
5.5 圖像特徵提升檢索體驗 113
5.6 本章小結 116
第6章 搜索界麵開發 118
6.1 使用Searchkit實現搜索界麵 118
6.2 Spring Boot入門 122
6.2.1 可執行的WAR 125
6.2.2 spring-boot-devtools模塊實現熱部署 136
6.3 Java模闆引擎Pebble介紹 136
6.4 通過Spring-data-elasticsearch 項目訪問Elasticsearch 141
6.5 REST基本概念 149
6.6 使用Vue.js開發搜索界麵 154
6.7 使用Vue.js Paginator插件實現翻頁 157
6.8 實現搜索接口 161
6.8.1 編碼識彆 161
6.8.2 布爾搜索 163
6.8.3 搜索結果重定嚮 164
6.8.4 搜索結果排序 165
6.8.5 實現相似文檔搜索 166
6.9 Suggester搜索詞提示 167
6.9.1 拼音提示 169
6.9.2 部署總結 169
6.9.3 相關搜索 170
6.9.4 再次查找 172
6.9.5 搜索日誌 172
6.10 Word2vec挖掘相關搜索詞 174
6.11 部署網站 179
6.11.1 部署到Web服務器 179
6.11.2 防止攻擊 181
6.12 使用Rust開發搜索界麵 184
6.13 本章小結 184
第7章 Elastic棧監控 186
7.1 管理Elasticsearch集群 186
7.1.1 寫入權限控製 187
7.1.2 使用X-Pack 188
7.1.3 快照 189
7.2 Logstash數據處理工具 190
7.2.1 使用Logstash 190
7.2.2 插件 192
7.2.3 數據庫輸入插件 192
7.2.4 開發插件 193
7.3 Filebeat文件收集器 193
7.4 消息過期 194
7.5 Kibana可視化平颱 195
7.6 Flume日誌收集 196
7.7 Kafka分布式流平颱 197
7.8 Graylog日誌管理平颱 198
7.9 本章小結 202
第8章 案例分析 204
8.1 雙語句對搜索 204
8.1.1 爬蟲抓取雙語句對 204
8.1.2 英文分詞 205
8.1.3 句子切分 205
8.1.4 標注詞性 207
8.1.5 詞對齊 209
8.1.6 索引數據 213
8.2 內容管理站內檢索 214
8.2.1 MySQL數據庫 214
8.2.2 RESTful API管理索引 215
8.2.3 自動客服機器人 217
8.3 搜索文檔 225
8.3.1 爬蟲抓取信息 225
8.3.2 在Linux下使用.NET 233
8.3.3 NEST客戶端 235
8.4 本章小結 239
參考文獻 240
· · · · · · (
收起)