在大数据时代,搜索是软件工程师的一项必备技能。而 Elasticsearch 就是一款功能强大的开源分布式搜索与数据分析引擎,在同领域内几乎没有竞争对手——近两年 DB-Engines 的数据库评测中,Elasticsearch 在搜索引擎领域始终位列第一。
Elasticsearch 不仅可以从海量数据中快速找到相关信息,还被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。
它可以探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过机器学习自动识别异常状况。
作为目前最流行的开源搜索引擎,Elasticsearch 在全球的下载量已超过 3.5 亿次。腾讯、滴滴、今日头条、饿了么、360 安全、小米,vivo 等国内诸多知名公司都在使用 Elasticsearch。
哪些人适合学习 Elasticsearch?
学习 Elasticsearch 的同学来自不同的工作岗位,具体可分为以下几类:
软件工程师:熟练掌握一门或多门编程语言,希望通过 Elasticsearch 提升搜索性能,实现分布式存储;通过学习 ES 的搜索与聚合 API,了解如何进行数据建模,在保证高性能获取数据的基础上,获得更为精准匹配的搜索结果。
运维工程师:同时管理几十万台服务器,保证服务的高可用,是运维工程师面临的最大挑战。通过学习 Elastic Stack,使用 Logstash、Kibana 解决运维工作中的日志分析,安全告警,指标监控等实际需求。
任何想拿数据做点事的人:在大数据时代,数据获取易如反掌。但当你想用数据做实时分析或决策时,才发现传统技术并不能很好地解决你的实际需求。
学习 Elasticsearch 需要什么基础?
Elasticsearch 具有开箱即用的特性,5 分钟就可以在笔记本上搭建好开发环境。
掌握任意一门编程语言,会让你学习起来更加简单,但这并不是必须的。
SQL 和关系数据库的使用经验,会帮助你的学习与理解。
如何学习 Elasticsearch?
我设计了一份 Elasticsearch 的学习路径,并列出了每一阶段的学习目标,适用于不同背景和基础的同学。
按照以下路径学习,结合课程中的练习和实践,你一定能学以致用,基于 Elasticsearch 构建出你自己的搜索和数据分析产品。
1.入门阶段
掌握 Elasticsearch 的基本概念
理解倒排索引和 文本 Analysis
设置索引 Mapping
掌握查询与聚合 API
2.进阶阶段
深入相关性算分
掌握如何提高搜索质量
Elasticsearch 的数据建模与优化
理解集群分布式工作原理
深入理解分片的工作机制
Elasticsearch 源码解析与插件开发
3.运维实践
选择合适的部署架构
集群监控与性能优化
集群容量规划与水平扩展
集群诊断及故障排查
4.综合实战
掌握 Elastic Stack 产品功能特性
深入理解用户场景,选择合理架构
理解数据特征,优化集群部署与数据建模
为了让大家聚焦每个阶段的学习重点,这里我没有对细节做进一步展开。但我整理了一份 「Elasticsearch 核心知识图谱」,内容涵盖了功能,原理,扩展及运维等多个方面,确保你不会疏漏任何一个知识点(领取方法:见文末)。
当然,我更建议你在学习的过程中,对所学的知识加以归纳总结,整理出属于自己的知识图谱。
书籍与相关资料推荐
Elasticsearch 权威指南
本书完全对得起“权威指南”四个字,强烈推荐。美中不足的是:内容基于 Elasticsearch 2.x 讲解,部分内容过时。以及,对新人来说,书中的范例代码无法直接拷贝运行。建议先泛读本书,读完 《Mastering Elasticsearch 5.x》 之后,再精读一遍。
Mastering Elasticsearch 5.x
Elasticsearch 5.0 是 Elasticsearch 2.x 之后的一个大版本,内容有很大的改进。如果想对 5.0 以后的功能特性和新 API 有一个比较全面的了解,推荐阅读本书。可以选择泛读,或直接阅读 Elasticsearch 7.1 的 API 文档。
Deep Learning for Search
本书主要讲解如何通过神经网络,来提高搜索的相关性。如果你对提高搜索结果的相关度有兴趣,推荐你读一读这本书。
技术社区和学习资源推荐
Elastic 公司的技术 Blog - https://www.elastic.co/cn/blog/
推荐订阅,特别是 “案例”和“工程”的分类。通过相关的案例分享和工程实践,可以帮助你建立更好的全局观。
Elastic 中文社区 - http://www.elasticsearch.cn/
Elastic 相关的音频播客 / 视频
1.Apple PodCast - “The Elasticcast”:Elastic 社区电台,全英文,分享一切关于 Elastic 的资讯。
2.Elastic 社区电台(喜马拉雅):以访谈的形式,分享社区内关于 Elasticsearch 的实践与思考。
3.IT 大咖说 - http://www.itdks.com/:搜索 Elasticsearch,可查看 Elasticsearch 相关的 Meetup 技术分享。
学习 Elasticsearch 的几点建议
1.学习 Elasticsearch 的正确方法是广度优先,而非深度优先。
你需要先了解 Elasticsearch 的所有概念,并理解他们要解决的问题。不要在一开始就深入每一个 API 的具体细节,避免陷入见树木不见森林的困境。
例如,在第一阶段,你应该尝试在笔记本电脑上安装 Elasticsearch,而不是选择直接在 Linux 安装和设置相关的生产环境参数。这些细节,应该在掌握了全局概念后,在第二阶段再继续深入。
2.多构思一些实际的应用场景。
尝试下载一些 Public Data,并构思它们的使用场景。使用真实数据的过程,需要你学会对数据进行抽取及 Enrichment,并最终实现搜索和统计分析。
你需要带着这些问题,去查阅 API 文档的相关细节。在实现需求的过程中,你会入坑,出坑,再入坑。这个阶段,将会给你带来很大的收获。
3.掌握获取他人帮助的正确方式。
不要害怕提问。但要杜绝不经过独立思考和调研,就立刻提问的不良习惯。面对问题,不要有畏难情绪,先尝试思考调研,实在想不出答案,discuss.elastic.co 和 www.stackoverflow.com 都是你获取他人帮助的好地方。
最后,去享受延迟满足的快乐。学习是一个漫长的过程,掌握广度优先的方法,做到持之以恒。面对比较深的知识点,不理解的话,可以多看几遍。坚持下来,就会有意想不到的收获。
Elasticsearch 入门简单,但千万不要骄傲自满。“自以为什么都懂,但实际上什么都不懂“,在学习过程中是最需要警惕的一种状态。
上线仅 1 周,已有超过 8000 人加入学习。
早鸟 + 优惠口令,到手价 ¥89,2 天后【 恢复原价 ¥129 】。
使用 Elasticsearch 最新 7.1 版本讲解,eBay 资深技术专家阮一鸣,带你快速构建分布式搜索和分析引擎。
学完课程,你将获得:
掌握 Elasticsearch 核心技能
熟练进行生产环境中的部署与优化
灵活运用 ELK 进行搜索与大数据分析
具备通过 Elastic 官方认证的能力
现在订阅有什么福利?
1.早鸟价 ¥99,结算时输入优惠口令「521devops」再减 10 元,到手仅 89 元。
注:2 天后【 恢复原价 ¥129 】。
2.订阅课程后,可获得作者整理的高清版 Elasticsearch 核心知识图谱,获取方式:添加课程运营微信 dididisco,回复关键词:ES。
早鸟 + 优惠口令,到手价 89 元。
2 天后【 恢复原价 ¥129 】,戳此立即抢购。
评论