新書推薦:

《
数学思维的力量
》
售價:NT$
332.0

《
大学问·清承明制:明清国家治理与社会变迁
》
售價:NT$
500.0

《
魏武王曹操(共两册)
》
售價:NT$
796.0

《
大学问·太平天国的历史和思想(一部研究太平天国的经典著作)
》
售價:NT$
653.0

《
细说秦汉史:中国人的生存逻辑
》
售價:NT$
704.0

《
地理中的中国史(自然篇)
》
售價:NT$
301.0

《
昭昭春日
》
售價:NT$
356.0

《
组织发展OD:出色HR如何做战略和效能分析
》
售價:NT$
356.0
|
編輯推薦: |
使用Elasticsearch和Kibana打造专业级的搜索引擎!
这是一本注重实践的书,书中深入探讨了Elasticsearch的整体架构,揭示了基础设施模式,并详细介绍了众多Elasticsearch API的搜索功能和分析功能。
本书指导读者使用Elasticsearch 8为网站和应用添加现代搜索功能,让读者可以从安装和配置集群的基础知识快速进阶到索引文档、高级聚合,再到将Elasticsearch投入生产。将设计出色的搜索体验的技术细节与技巧巧妙地结合是本书的一大特点,这一特点必将使读者对本书爱不释手。
本书主要内容
● 理解搜索架构。
● 全文搜索查询和词项级搜索查询。
● 分析和聚合。
● Kibana中的高级可视化。
● 配置、扩展和调优集群。
本书适合熟悉脚本和命令行应用的应用开发人员阅读。
|
內容簡介: |
本书全面深入地介绍Elasticsearch的核心功能及其工作机制。本书由浅入深,从Elasticsearch的基本用法和架构原理,以及倒排索引、分片、节点角色和相关性等核心概念讲起;然后深入探讨数据处理和索引管理,涵盖映射模式、数据类型、文本分析、索引模板;接着详细介绍词项级搜索、全文搜索、复合查询和高级搜索等Elasticsearch的搜索功能,并深入讲解聚合;最后聚焦生产环境中的Elasticsearch管理和性能优化。本书特别注重实践,提供了大量的代码示例,涵盖从基础查询到复杂功能的各种应用场景。与第1版相比,这一版更新并补充了许多新的功能点,如索引生命周期管理、可组合索引模板机制、地理位置查询等。
本书是使用Elasticsearch开发全功能搜索引擎的实践指南,适合刚接触Elasticsearch领域、希望了解其基本工作原理的开发者、架构师、分析师、管理者、产品负责人或希望利用Elasticsearch进行实时数据分析和处理的数据科学家阅读,也适合在实际项目中遇到挑战的资深工程师及学习大数据技术并对搜索技术感兴趣的学生和研究人员阅读。
|
關於作者: |
[英]马杜苏丹·孔达(Madhusudhan Konda)是全栈首席工程师、架构师,也是技术导师和会议演讲者。他还是一位颇具盛名的技术图书作者,他关于Java、Spring和Hibernate生态系统的书广受读者欢迎。此外,他还提供有关Elasticsearch和Elastic Stack的在线培训。
|
目錄:
|
目录
第 1章 概述 1
1.1 一个好的搜索引擎是怎样的 1
1.2 搜索已成为新常态 2
1.2.1 结构化数据与非结构化(全文)数据 3
1.2.2 数据库支持的搜索 4
1.2.3 数据库与搜索引擎 5
1.3 现代搜索引擎 6
1.3.1 功能 6
1.3.2 流行的搜索引擎 7
1.4 Elasticsearch概述 7
1.4.1 核心领域 8
1.4.2 Elastic Stack 9
1.4.3 Elasticsearch的使用场景 10
1.4.4 不适合Elasticsearch的使用场景 11
1.4.5 误解 12
1.5 业界案例 13
1.6 生成式人工智能与现代搜索 14
1.7 小结 16
第 2章 开始使用 17
2.1 往Elasticsearch中导入数据 18
2.1.1 在线书店 18
2.1.2 索引文档 19
2.1.3 索引第 一个文档 22
2.1.4 索引更多文档 25
2.2 检索数据 26
2.2.1 计算文档数量 26
2.2.2 检索文档 27
2.3 全文搜索 31
2.3.1 匹配查询:按作者找书 31
2.3.2 带有AND运算符的匹配查询 32
2.3.3 使用_bulk API索引文档 34
2.3.4 多字段搜索 35
2.3.5 提升结果 36
2.3.6 搜索短语 36
2.3.7 处理缺失单词的短语 38
2.3.8 处理拼写错误 38
2.4 词项级查询 39
2.4.1 term查询 40
2.4.2 range查询 41
2.5 复合查询 41
2.5.1 bool查询 42
2.5.2 must子句 43
2.5.3 must_not子句 44
2.5.4 should子句 44
2.5.5 filter子句 45
2.6 聚合 46
2.6.1 指标聚合 47
2.6.2 桶聚合 49
2.7 小结 52
第3章 架构 53
3.1 概述 54
3.1.1 数据导入 54
3.1.2 数据处理 55
3.1.3 数据输出 58
3.2 基本组件 58
3.2.1 文档 58
3.2.2 索引 62
3.2.3 数据流 63
3.2.4 分片和副本 65
3.2.5 节点和集群 70
3.3 倒排索引 75
3.4 相关性 77
3.4.1 相关性分数 77
3.4.2 相关性(相似性)算法 78
3.5 路由算法 82
3.6 扩展 83
3.6.1 纵向扩展(垂直扩展) 83
3.6.2 横向扩展(水平扩展) 84
3.7 小结 84
第4章 映射 85
4.1 概述 86
4.1.1 映射定义 86
4.1.2 首次索引文档 87
4.2 动态映射 89
4.2.1 推断类型的机制 90
4.2.2 动态映射的局限性 91
4.3 显式映射 93
4.3.1 使用索引API定义映射 94
4.3.2 使用映射API更新模式 95
4.3.3 不允许修改现有字段 97
4.3.4 类型强制转换 98
4.4 数据类型 98
4.5 核心数据类型 100
4.5.1 文本数据类型 100
4.5.2 关键词数据类型 104
4.5.3 日期数据类型 106
4.5.4 数值数据类型 108
4.5.5 布尔数据类型 109
4.5.6 范围数据类型 110
4.5.7 IP地址数据类型 111
4.6 高级数据类型 112
4.6.1 geo_point数据类型 112
4.6.2 object数据类型 114
4.6.3 nested数据类型 118
4.6.4 flattened数据类型 120
4.6.5 join数据类型 122
4.6.6 search_as_you_type数据类型 124
4.7 拥有多种数据类型的字段 126
4.8 小结 127
第5章 处理文档 128
5.1 索引文档 129
5.1.1 文档API 129
5.1.2 索引机制 135
5.1.3 自定义刷新过程 137
5.2 检索文档 138
5.2.1 使用单文档API 139
5.2.2 检索多个文档 140
5.2.3 ids查询 141
5.3 操纵响应 142
5.3.1 从响应中移除元数据 142
5.3.2 抑制源数据 143
5.3.3 包含或排除字段 144
5.4 更新文档 146
5.4.1 文档更新机制 146
5.4.2 _update API 147
5.4.3 脚本更新 148
5.4.4 替换文档 152
5.4.5 更新插入 153
5.4.6 将更新视为更新插入 154
5.4.7 通过查询更新 155
5.5 删除文档 156
5.5.1 通过ID删除 156
5.5.2 通过查询删除 156
5.5.3 通过range查询删除 157
5.5.4 删除所有文档 158
5.6 批量处理文档 159
5.6.1 _bulk API的格式 159
5.6.2 批量索引文档 160
5.6.3 批量请求处理多个索引和操作 161
5.6.4 使用cURL执行批量请求 162
5.7 重新索引文档 163
5.8 小结 164
第6章 索引操作 165
6.1 概述 166
6.2 创建索引 166
6.2.1 隐式创建索引(自动创建) 167
6.2.2 显式创建索引(手动创建) 170
6.2.3 自定义索引设置 170
6.2.4 索引映射 172
6.2.5 索引别名 173
6.3 读取索引 177
6.3.1 读取公开索引 177
6.3.2 读取隐藏索引 178
6.4 删除索引 179
6.4.1 删除多个索引 179
6.4.2 仅删除别名 180
6.5 关闭索引和打开索引 180
6.5.1 关闭索引 180
6.5.2 打开索引 181
6.6 索引模板 182
6.6.1 创建可组合(索引)模板 183
6.6.2 创建组件模板 184
6.7 监控和管理索引 186
6.7.1 索引的统计信息 186
6.7.2 多个索引的统计信息 188
6.8 高级操作 189
6.8.1 拆分索引 189
6.8.2 缩小索引 191
6.8.3 滚动更新索引别名 193
6.9 索引生命周期管理 195
6.9.1 索引生命周期 196
6.9.2 手动管理索引生命周期 197
6.9.3 带有滚动机制的索引生命周期 199
6.10 小结 202
第7章 文本分析 203
7.1 概述 204
7.1.1 查询非结构化数据 204
7.1.2 分析器来拯救 205
7.2 分析器模块 205
7.2.1 分词 205
7.2.2 归一化 206
7.2.3 分析器的结构 206
7.2.4 测试分析器 208
7.3 内置分析器 209
7.3.1 standard分析器 210
7.3.2 simple分析器 216
7.3.3 whitespace分析器 217
7.3.4 keyword分析器 218
7.3.5 fingerprint分析器 219
7.3.6 pattern分析器 220
7.3.7 语言分析器 221
7.4 自定义分析器 224
7.5 指定分析器 227
7.5.1 为索引指定分析器 227
7.5.2 为搜索指定分析器 228
7.6 字符过滤器 230
7.6.1 html_strip字符过滤器 231
7.6.2 mapping字符过滤器 232
7.6.3 pattern_replace字符过滤器 234
7.7 分词器 235
7.7.1 standard分词器 235
7.7.2 ngram分词器和edge_ngram分词器 236
7.7.3 其他分词器 238
7.8 词元过滤器 238
7.8.1 stemmer词元过滤器 239
7.8.2 shingle词元过滤器 239
7.8.3 synonym词元过滤器 240
7.9 小结 242
第8章 搜索简介 243
8.1 概述 243
8.2 搜索的工作原理 244
8.3 电影样本数据 245
8.4 搜索的基础知识 247
8.4.1 _search端点 247
8.4.2 查询上下文和过滤上下文 248
8.5 请求和响应的结构 250
8.5.1 搜索请求 250
8.5.2 搜索响应 251
8.6 URI搜索 253
8.6.1 按片名搜索电影 253
8.6.2 搜索特定的电影 254
8.6.3 附加参数 254
8.6.4 使用Query DSL支持URI搜索 255
8.7 Query DSL 255
8.7.1 查询样例 256
8.7.2 通过cURL调用Query DSL 256
8.7.3 使用Query DSL进行聚合 257
8.7.4 叶子查询和复合查询 257
8.8 搜索功能 258
8.8.1 分页 259
8.8.2 高亮显示 260
8.8.3 解释相关性分数 262
8.8.4 排序 264
8.8.5 操纵结果 267
8.8.6 跨索引和数据流搜索 271
8.9 小结 272
第9章 词项级搜索 273
9.1 概述 273
9.1.1 词项级查询不进行分析 273
9.1.2 词项级查询示例 274
9.2 term查询 275
9.2.1 在text类型的字段上执行term查询 275
9.2.2 term查询示例 276
9.2.3 简化的词项级查询 277
9.3 terms查询 277
9.3.1 terms查询示例 278
9.3.2 terms查找查询 279
9.4 ids查询 280
9.5 exists查询 281
9.6 range查询 282
9.7 wildcard查询 284
9.8 prefix查询 286
9.8.1 简化查询 287
9.8.2 加速prefix查询 288
9.9 fuzzy查询 289
9.10 小结 291
第 10章 全文搜索 292
10.1 概述 292
10.1.1 精确率 293
10.1.2 召回率 293
10.2 样本数据 295
10.3 match_all查询 295
10.3.1 构建match_all查询 295
10.3.2 match_all查询的简写格式 296
10.4 match_none查询 296
10.5 match查询 297
10.5.1 match查询的格式 297
10.5.2 使用match查询搜索 298
10.5.3 分析match查询 298
10.5.4 搜索多个单词 299
10.5.5 至少匹配几个单词 300
10.5.6 使用fuzziness关键词纠正拼写错误 301
10.6 match_phrase查询 301
10.7 match_phrase_prefix查询 303
10.8 multi_match查询 304
10.8.1 最佳字段 304
10.8.2 dis_max查询 306
10.8.3 tie_breaker 306
10.8.4 提升单个字段的权重 308
10.9 query_string查询 309
10.9.1 query_string查询中的字段 310
10.9.2 默认运算符 311
10.9.3 带有短语的query_string查询 312
10.10 模糊查询 312
10.11 简单的字符串查询 313
10.12 simple_query_string查询 314
10.13 小结 315
第 11章 复合查询 316
11.1 产品样本数据 317
11.1.1 产品模式 317
11.1.2 索引产品数据 318
11.2 复合查询 318
11.3 bool查询 320
11.3.1 bool查询结构 320
11.3.2 must子句 321
11.3.3 增强must子句 322
11.3.4 must_not子句 324
11.3.5 增强must_not子句 325
11.3.6 should子句 327
11.3.7 filter子句 332
11.3.8 组合所有子句 334
11.3.9 命名查询 335
11.4 constant_score查询 337
11.5 boosting查询 339
11.6 dis_max查询 341
11.7 function_score查询 343
11.7.1 random_score函数 344
11.7.2 script_score函数 345
11.7.3 field_value_factor函数 346
11.7.4 组合函数分数 347
11.8 小结 348
第 12章 高级搜索 349
12.1 位置搜索简介 350
12.1.1 bounding_box查询 350
12.1.2 geo_distance查询 351
12.1.3 geo_shape查询 351
12.2 地理空间数据类型 352
12.2.1 geo_point数据类型 352
12.2.2 geo_shape数据类型 353
12.3 地理空间查询 355
12.4 geo_bounding_box查询 355
12.5 geo_distance查询 359
12.6 geo_shape查询 360
12.7 shape查询 362
12.8 span查询 364
12.8.1 样本数据 364
12.8.2 span_first查询 365
12.8.3 span_near查询 366
12.8.4 span_within查询 367
12.8.5 span_or查询 369
12.9 专用查询 370
12.9.1 distance_feature查询 370
12.9.2 pinned查询 375
12.9.3 more_like_this查询 376
12.9.4 percolate查询 377
12.10 小结 381
第 13章 聚合 382
13.1 概述 382
13.1.1 端点和语法 383
13.1.2 结合搜索和聚合 383
13.1.3 多重聚合和嵌套聚合 384
13.1.4 忽略结果 384
13.2 指标聚合 385
13.2.1 样本数据 385
13.2.2 value_count指标 386
13.2.3 avg指标 387
13.2.4 sum指标 388
13.2.5 min指标和max指标 388
13.2.6 stats指标 389
13.2.7 extended_stats指标 390
13.2.8 cardinality指标 391
13.3 桶聚合 392
13.3.1 直方图 393
13.3.2 子聚合 396
13.3.3 自定义range聚合 397
13.3.4 terms聚合 399
13.3.5 multi-terms聚合 400
13.4 父聚合和兄弟聚合 401
13.4.1 父聚合 402
13.4.2 兄弟聚合 403
13.5 管道聚合 404
13.5.1 管道聚合的类型 404
13.5.2 样本数据 404
13.5.3 管道聚合的语法 405
13.5.4 可用的管道聚合 406
13.5.5 cumulative_sum父管道聚合 407
13.5.6 max_bucket和min_bucket兄弟管道聚合 408
13.6 小结 410
第 14章 集群管理 411
14.1 扩展集群 412
14.1.1 向集群中添加节点 412
14.1.2 集群健康 413
14.1.3 提高读吞吐量 416
14.2 节点间通信 416
14.3 确定分片大小 417
14.3.1 设置单个索引 417
14.3.2 设置多个索引 418
14.4 快照 419
14.4.1 开始使用 420
14.4.2 注册快照存储库 421
14.4.3 创建快照 423
14.4.4 恢复快照 424
14.4.5 删除快照 424
14.4.6 自动化快照 424
14.5 高级配置 428
14.5.1 主配置文件 429
14.5.2 日志选项 429
14.5.3 Java虚拟机选项 430
14.6 集群主节点 431
14.6.1 主节点 431
14.6.2 主节点选举 432
14.6.3 集群状态 432
14.6.4 法定人数 433
14.6.5 脑裂问题 433
14.6.6 专用主节点 434
14.7 小结 435
第 15章 性能与故障排查 437
15.1 搜索与速度问题 437
15.1.1 现代硬件 438
15.1.2 文档建模 438
15.1.3 选择keyword类型而不是text类型 441
15.2 索引速度问题 442
15.2.1 系统生成的ID 442
15.2.2 批量请求 442
15.2.3 调整刷新频率 442
15.3 集群不稳定问题 445
15.3.1 集群状态不是绿色 445
15.3.2 未分配的分片 445
15.3.3 磁盘使用阈值 447
15.4 断路器 449
15.5 结束语 450
15.6 小结 451
附录A 安装 452
附录B 摄取管道 459
附录C 客户端 466
|
|