Elasticsearch搜索引擎构建入门与实战

Elasticsearch搜索引擎构建入门与实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-11
版次: 1
ISBN: 9787111694229
定价: 89.80
装帧: 其他
开本: 16开
纸张: 胶版纸
字数: 500千字
21人买过
  • 《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

    ……
  • 内容简介:
    《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

    ……
查看详情
12
相关图书 / 更多