新書推薦:
《
中国海域史·南海卷
》
售價:HK$
107.8
《
戏剧舞蹈人物动态图集(绝美的服装设计和极致的身体动态美感展现)
》
售價:HK$
352.0
《
政治权力与公司控制 公司治理的全球政治学新解 (美)彼得·A.古勒维奇,(美)詹姆斯·希恩著
》
售價:HK$
126.5
《
隈研吾建筑图鉴 50座名建筑的深度拆解与访谈
》
售價:HK$
118.8
《
古雅典的民主与法治(当城邦服从法律时,所有这些资源都会为共同的利益服务)
》
售價:HK$
118.8
《
社会法哲学(全二册)(社会法与法社会论丛)
》
售價:HK$
272.8
《
中国传统药食同源物质图典
》
售價:HK$
250.8
《
文化模式
》
售價:HK$
96.8
|
編輯推薦: |
1. 甲骨文、阿里巴巴等知名公司的4位技术专家倾情力荐。
2. 资深大数据专家全面分享多年的Elasticsearch搜索引擎构建经验。
3. 详解Elasticsearch的基础知识、架构原理、高级技术和项目实战案例
4. 涵盖索引创建、文档操作、搜索匹配、搜索排序和聚合等技术。
5. 着重介绍搜索匹配和搜索排序两大核心功能模块的相关知识。
6. 结合大量典型实例进行讲解,并给出完整的实战案例。
7. 结合酒店搜索引擎的实际场景,详解Elasticsearch的相关知识点。
8. 介绍DSL的同时给出等效的Java代码,提高技术落地效率。
|
內容簡介: |
《Elasticsearch搜索引擎构建入门与实战》从Elasticsearch的基本概念和原理讲起,然后系统介绍Elasticsearch的使用场景,带领读者近距离接触Elasticsearch。本书全面涵盖Elasticsearch客户端的安装和使用、索引创建、文档操作、搜索匹配、搜索排序和聚合等技术,可以帮助读者循序渐进地掌握Elasticsearch的相关知识。
《Elasticsearch搜索引擎构建入门与实战》共8章,分为3篇。第1篇“Elasticsearch基础”,主要介绍Elasticsearch的基础知识和基本用法;第2篇“Elasticsearch提高”,首先介绍文本搜索和排序原理,然后介绍聚合的使用方法;第3篇“Elasticsearch实战”,以酒店搜索为案例,详细介绍Elasticsearch在实际搜索应用中涉及的相关技术,帮助读者全面了解搜索引擎,从而提高开发水平。本书重点介绍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
……
|
內容試閱:
|
随着移动互联网的发展和5G时代的到来,数据的产生和使用规模越来越大。在这个信息过载的时代,如何能让人们更加精准地找到适合自己的信息呢?答案是利用搜索引擎。
如今,形形色色的互联网应用程序都内置了搜索引擎功能。例如,用户可以在淘宝和等电商平台上搜索商品,可以在携程和美团等平台上搜索低价的飞机票,还可以在百度地图和高德地图等软件中搜索某地的详细地址。
搜索引擎的底层技术是非常专业的,需要技术人员系统地学习索引、压缩和存储等方面的知识,学习路线非常“陡峭”。而在工程实践中,技术人员往往需要一款无须熟知底层技术便可使用的搜索引擎框架,以便在较短时间内实现业务搜索的需求。作为搜索引擎框架中的佼佼者,Elasticsearch(简称ES)提供了完备的解决方案。从索引创建到搜索查询,再到搜索排序等各个方面,ES都提供了对应的服务支持,用户可以通过发送REST请求完成上述工作。如今,ES已经不是单一的搜索引擎框架,它已经演变成一个生态系统。ES与ELK的完美搭配,使系统的数据收集、数据检索和数据呈现可以无缝连接,因此越来越多的企业都采用该方案来搭建数据系统。
笔者在使用ES构建搜索引擎的过程中查阅了大量资料,从中汲取了丰富的营养,积累了宝贵的实战经验,对ES的理解越来越深刻,因此也越来越迫切地希望将自己积累的这些经验总结成册,以帮助更多想学习ES开发的人。这便是本书写作的初衷。
《Elasticsearch搜索引擎构建入门与实战》特色
1.内容全面,重点突出
《Elasticsearch搜索引擎构建入门与实战》没有泛泛地介绍ES的每一个技术细节,而是将重点放在搜索匹配和搜索排序两大核心功能模块的讲解上。这两个模块涉及搜索引擎的主要功能,是工程实践中经常使用的模块。
2.结合大量实例讲解,实用性强
《Elasticsearch搜索引擎构建入门与实战》结合大量的ES实例进行讲解,并在后一章给出了完整的搜索引擎实战案例,具有较强的实用性。通过阅读本书,读者可以系统地掌握ES的实战技能。
3.贯穿主题,沉浸式学习
《Elasticsearch搜索引擎构建入门与实战》引入酒店搜索引擎这一主题,结合酒店搜索的实际需求场景介绍ES的相关知识点,可以让读者通过沉浸式的学习体验,感受看得见、摸得着的真实案例。
4.“双语”输出,能实验也能落地
《Elasticsearch搜索引擎构建入门与实战》在介绍DSL(领域特定语言)的同时也会给出同等效果的Java代码,以帮助读者节省查找相关文档的时间,从而提高技术落地的效率。
《Elasticsearch搜索引擎构建入门与实战》内容
第1篇 Elasticsearch基础
第1章首先介绍ES的基本概念、架构原理和应用场景,然后介绍ES的安装和基本使用。
第2章介绍ES客户端的使用,包括Kibana的安装和使用,以及Java客户端、Spring Data Elasticsearch和JestClient的使用。
第3章介绍ES的索引、映射和文档的基本操作,其中,文档的操作重点介绍批量写入、更新和删除等相关操作。
第4章介绍ES的搜索功能,包括基于term的普通搜索、文本匹配和基于地理位置的搜索,以及ES提供的辅助搜索工具的使用。
第2篇 Elasticsearch提高
第5章介绍ES文本搜索的原理和使用,重点介绍分析器的原理和使用,另外针对中文搜索,介绍同义词和停用词的管理,以及文本高亮显示搜索功能的使用。
第6章介绍ES搜索排序的原理和使用,同时结合实例介绍打分的具体方式以及ES支持的用户自定义打分的相关功能。
第7章介绍ES聚合的相关知识点,重点结合业界的聚合场景,介绍聚合指标、桶聚合和聚合方式等相关功能。
第3篇 Elasticsearch实战
第8章从构建一个酒店的搜索引擎应用出发,介绍搜索建议、搜索匹配和搜索排序三大模块的实现,并给出前端实现的逻辑代码,从而帮助读者不借助外力即可独立完成开发工作。
《Elasticsearch搜索引擎构建入门与实战》读者对象
? 搜索引擎初学者;
? 想转型做搜索引擎开发的工程人员;
? 想对现有搜索引擎进行优化的工程人员;
? 对搜索技术感兴趣的爱好者;
? 大中专院校信息技术类专业的学生;
? 相关培训机构的学员。
配书资源获取方式
《Elasticsearch搜索引擎构建入门与实战》涉及的所有源代码需要读者自行下载。请在华章公司的网站(www.hzbook.com)上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到下载链接进行下载。此外,读者还可以在百度网盘上下载这些资源。
意见反馈
限于笔者水平和写作时间,书中可能还存在一些疏漏,敬请各位读者批评和指正。如果您对本书有任何疑问,请加入QQ群与笔者或其他读者交流,也可以发送电子邮件获得帮助。
致谢
感谢众多ES人的无私奉献!没有他们的付出,本书很难和读者见面。
感谢罗雨露女士!在写作的过程中,她为本书提供了很多详尽的改进意见。
感谢公司搜索项目的领导和同事!在我遇到困难时,他们的帮助如今还历历在目。
感谢家人和朋友的支持!编写本书需要投入大量的精力,如果没有他们的理解、支持和鼓励,本书很难有机会出版。
后感谢各位读者朋友!本书因你们而有价值,这也是我完成本书的动力。
……
|
|