如何系统的学习 Elasticsearch ?

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 这是上一次技术直播里六个子主题中的最后一个主题的扩展版本。近期又有读者问到类似问题,我认为非常有必要花长时间梳理后跟大家分享一下。

1、基础篇:零基础如何学 Elasticsearch ?

常见问题:“ES 零基础入门书籍看什么比较好?”


认知前提:书籍的速度已远落后于 ES 版本更新的速度。ES 几乎每个月发布一个版本,更新很快。


市面上的书籍,尤其国外翻译书籍还大多是:1.x,2.x,5.x ,6.x 的版本,更新较慢。

image.png

有几本7.X的书籍,我没有买实体书,不太有发言权。不过:1.X——6.X全部实体书我都买了,也都看完了,可以说有发言权。


相比于实体书籍,我更推荐官方文档,但鉴于“零基础”读者对英文的恐惧,书籍、视频、学习路线等推荐列表如下:


1.1 零基础书籍推荐

推荐1:《这就是搜索引擎》

image.png

这是一本介绍搜索引擎原理的书,有了搜索引擎原理的认知再去理解 Elasticsearch 会有“居高临下”俯视的感觉。


推荐理由 1:长销书(比畅销书高一个level)、作者是中科院软件所博士、包含大量图解、通俗易懂。


推荐理由 2:貌似在 medcl 大神(Elasti中文社区创始人、Elastic中国第1位员工) 书架也有这本书。


推荐 2:《Elasticsearch 权威指南》2.X 中文翻译电子书

image.png

地址如下:


https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html


推荐理由 1:虽然基于 2.X,但底层原理的介绍并不过时,值得一看。


推荐理由 2:wood大叔(携程架构师、Elastic 中文社区排名第1名)也曾经多次推荐且他看过2遍以上+。


推荐 3:《Elasticsearch 实战》纸质书

image.png

这本书是《Elasticsearch IN ACTION》 的翻译版本。


推荐理由 1:作者之一已入职 Elasticsearch。


推荐理由 2:翻译作者是极客时间数学课的作者:黄申博士,翻译还可以,至少比《 Lucene 实战 》翻译好 100 倍。


推荐理由 3:这本书是 Medcl 大神写的序。


推荐4:结合 ECE 考纲、《Elasticsearch 最少必要知识》电子教程啃官方文档。

《Elasticsearch 最少必要知识》 地址:


https://www.yuque.com/deep_elasticsearch/tzcm9n

image.png

推荐理由 1:ECE 认证考试是以考带练,入门学习和进阶的绝佳方式,没有之一。


推荐理由 2:单独看官方文档不知道重点,而 ECE 考纲就是重点。


推荐理由 3:单独看官方文档 + ECE大纲没有头绪,《Elasticsearch 最少必要知识》帮梳理清楚了。


1.2 零基础入门视频教程推荐

推荐 1:阮一鸣老师 7.1+ 极客时间视频


地址:https://time.geekbang.org/course/intro/100030501


推荐 2:魏彬老师慕课网的视频(6.X 版本)


地址:https://coding.imooc.com/class/181.html


推荐 3:李猛老师视频课程(最新版本)


地址:https://www.gupaoedu.cn/course-es.html


推荐 4:中华石杉老师的 2.X 视频教程


地址:https://www.roncoo.com/view/80


推荐 5:死磕 Elasticsearch 最少必要知识系列直播(7.x + 版本,推进中)


地址:http://t.cn/RmwM3N9


因为每个人的“口味”不同,正所谓“众口难调”,再好口碑的课程也有人觉得“鸡肋”。


所以,上面列举了几乎所有 Elasticsearch 视频教程,总有适合你的一款。


1.3 “零基础”是相对的、不要怕!

所谓“零基础”,Mysql 数据库的一些常规操作基础是有的吧?


推荐结合已有知识体系,类比学习:


MySQL ElasticSearch

Table Index

Table Type

Row Document

Column Field

Schema Mapping

Index Everything is indexed

SQL Query DSL

select * from … GET  http://…

update table set … POST  http://…

group by、avg、sum Aggregations

去重 distinct cardinality

数据迁移 reindex

image.png

通过类比:就可以由已有认知过度到未知认知,便于快速习得技能。


建议把基础内容分为两部分,


part 1:增删改查


这一部分相对好理解,或者可以借助已有知识体系类比加深理解。


进一步细分为:


索引的增删改查


文档的增删改查


Mapping 的增删改查


template 的增删改查


......


这些知识有了,基本的操作基本都经过手了。


part 2:非增删改查


进一步细分为:


数据预处理 Ingest


自定义分词


检索分类


聚合分类


节点角色分类


集群备份与快照


集群安全


跨集群部署


冷热集群架构


跨机房跨机架检索


......


有了上面的分类,一个知识点一个知识点的攻克就可以了。


1.4 形成自己的学习路线图

我之前梳理的学习路线图如下:


重磅 | Elasticsearch7.X学习路线图


学习路线因人而异,上面的路线图仅供参考。


需要结合自己的实践和认知,找到属于自己的一条学习路线。


1.5 “零基础”学习方法论——光看不够,搭建环境 + 练起来更重要!

书籍和视频一个道理,看再多不如练习一遍。


这里强调的练:是《刻意练习》书籍中推崇的概念“练习”的练,不是盲目的练习、而是有目的、有目标的刻意练习。


你看星球考过的 46 位认证工程师,都是刻意练习 + 对官方文档非常熟练的结果。


最简单、最轻量化的方式:搭建好环境(单节点 Elasticsearch + kibana),用 kibana 自带的三个示例数据就可以练习起来。


部署方式一:如果 PC 内存足够,搭建个虚拟机就可以开搞了。


部署方式二:如果对 docker 很熟悉,docker 部署 ELK 也非常快。


部署方式三:一、二都不喜欢,自己买个云服务器(最少2核4G)就够了。


结合自己的需求,用自己最擅长的方式。


以上,期望有助于你快速入门!


2、进阶篇:实践加深认知

基础篇强调练起来。进阶篇会进一步强调“练”的重要性。


2.1 刻意学习一遍官方文档

程序猿DD大佬说过:要切实的落实某个框架,全面了解和掌握的方式永远都是“官方文档 + 学会读源代码”。


是的,如果说入门我们可以看博客、看视频,站在别人“肩上”走的更快。那么进阶的话,系统的过一遍官方文档就很有必要了。


如果感觉上来就全英文有些吃力,可以 7.X 最新版本的英文结合 2.X 中文文档一起来看。

image.png

如果感觉吃力,可以看一下技术博客资源:


全网最牛逼的 Elasticsearch 天团博客集合


2.2 实战中刻意练习

在产品或项目架构、开发、运维的过程中,遇到问题,不要仅局限在解决问题本身,多刨根问底,问问底层原理是什么?


举例 1:range query 对数值类型还是 keyword 类型来讲,哪种数据类型会更快?


举例 2:index sort 真的很快吗?适用于什么场景?底层是如何实现的?


这时候有遇到不明白的,可以翻阅官方文档,查看github issue记录,翻阅源代码,社区内讨论等......通过不断求证提升认知。


2.3 上学下帮的练习

社区中每天都有来自全国 N 多公司线上实战问题,看看别人都遇到了哪些问题?用了哪些技术栈?


国内Elastic社区地址:https://elasticsearch.cn/


国外Elastic社区地址:https://discuss.elastic.co/


2.3.1 向上学

向比自己厉害的人学习。


社区社群中有大量的大牛,即便很“偏门”、“刁钻”的问题也能有非常独到的见解和思路,这就很值得我们去学习。


学习什么?


学习他们拆解问题、分析问题、定位问题以及解决问题的思路。


2.3.2 向下帮

帮助需要帮助的人,大家都有知识盲区。帮助别人的同时个人也能得到飞速的提升。


正所谓:“讲一遍有一遍的收货”。


对于求助人来说,“能把问题讲清楚、问题就解决了一大半”。


而对于解答者来说:“输出倒逼输入,帮助别人排查问题,本质就是进一步提升自己的认知”。别的不说,社区 wood 大叔的文章基本就是解决自己或者别人问题而累积的干货,对 Elastic 学习者来说大有裨益。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
3月前
|
自然语言处理 Java 网络架构
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
这篇文章是关于如何自定义Elasticsearch的ik分词器配置以满足特定的中文分词需求。
186 0
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
|
3月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
162 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
3月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
41 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
3月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
263 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
3月前
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
154 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
3月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
296 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
5月前
|
消息中间件 监控 Kafka
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
【8月更文挑战第13天】Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
269 3
|
8月前
|
存储 缓存 自然语言处理
Elasticsearch框架学习的难点和重点有哪些
Elasticsearch是基于Lucene的开源搜索引擎,广泛应用于全文检索和日志分析。学习重点包括理解节点、集群、索引、分片和副本等基本概念,掌握数据索引、查询DSL、聚合和性能优化。倒排索引和分词器是全文搜索的核心,集群管理和监控对于稳定性至关重要。实践中需根据数据量和查询模式优化分片策略,利用缓存提升搜索性能。学习Elasticsearch要结合实际项目,关注官方文档和社区资源。【5月更文挑战第6天】
|
8月前
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
8月前
|
人工智能 架构师 开发者
大模型时代,该如何更好的学习 Elasticsearch?
大模型时代,该如何更好的学习 Elasticsearch?
71 0