目录
前言
第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
· · · · · · (
收起)