你的 Elasticsearch 难题,官方文档早就有了答案......

女艺人都开始学习 Elasticsearch了

看到朋友圈大佬都在转载:

足见 Elasticsearch 的热度。

近几年,活跃于 Elasticsearch 中文社区、各种QQ学习群、微信学习群,经常会看到各种各样的问题, 很多问题,官方文档已经写得非常清楚了,甚至官方文档早有了答案。

官方文档强调内容举例:

  • 避免对 text 类型使用 term query。

Avoid using the term query for text fields

  • search.allow_expensive_queries 设置为 false后,wildcard 将不被执行。

Wildcard queries will not be executed if search.allow_expensive_queries is set to false.

  • text 类型存储数据结构是倒排索引,而 geo 和 数值类型存储数据结构是 BKD trees。

For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees.

如上的选型针对的是微信群的提问:谁知道精确值在 ES 中怎么存储的不,比如 "price": 100,也是存储在倒排索引中的么?

死磕 Elasticsearch 星球

但,由于Elasticsearch 更新快、官方文档都是英文、官方文档覆盖面又全又广,很多初学者知道其有用,但,很容易对其望而却步。

退而求其次,选择了一些老版本的书或者参考资料,浪费了时间、走了很多弯路,而后又通过google、stackoverflow、disscuss.elastic.co、github 跳到了官方文档,这时候才恍然大悟:“文档中都写着了,我为什么之前不知道?!"

本文结合自己 Elastic 认证经验,梳理一下 Elasticsearch 官方文档的学习路径。

期望对大家能有所帮助。

第一手资料的重要性

学习 Elasticsearch 知识的过程中,官方英文文档 + 源码 + 源码作者写的图书 + 官方博客才能称为第一手资料。

第二手资料:github issue, 国外社区论坛,stackoverflow, 国内博客论坛,优秀的国内外图书。

书的封皮作者部分,著、编著、翻译的区别(说法不严谨)

1) - 完全自己写的,质量相对高。几乎很少参考别人的。如:侯捷《深入浅出MFC》、《程序员的自我修养》、《Elasticsearch源码解析与实战》……

2)翻译 - 翻译一般会滞后1年+,比如:《Elasticsearch in action》滞后了3年。15年英文版,18年出中文版。

第三手资料:拼凑的国内图书。

封皮一般会有“编著”字样。

3)编著 - 编著也不乏优秀作品。但,国内很多博导、硕导、老师等为了评职称写了很多烂书,千万别买!

如何甄别一本好书 ?看销量、看评分、看再版情况基本就能区分个八九不离十。

相比之下:

  • 一手资料优于二手资料,二手资料优于三手资料。

  • 一手资料非常重要,获得知识最直接,没有中间环节,减少认知盲区和障碍!

Elasticsearch 官方文档就是第一手资料

字越少,信息量越大!

关于 Elasticsearch  官方文档,ES 业界大佬怎么说?

最新 + 丰富 + 权威 + 靠谱

VIVO 搜索总监杨振涛大佬指出:

“一是以官方提供的入门和参考文档为主,因为业内现在 ES 相关资料相对来说比较丰富,但是想要跟上官方最新版本的节奏以及考虑权威性,还是官方的参考文档和有关的手册会比较靠谱!”

快速了解全貌,有帮助

携程 WOOD 大叔强调:

“对于新手入门最浅显易懂的,还是官方那本 Elasticsearc 权威指南,中文版是2.X,但对新手快速了解 Elasticsearch的全貌,有非常大的帮助”。

Elasticsearch 官方文档地址

Elasticsearch 最新版本官方文档入口

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

Elasticsearch 权威指南英文版(2.X)

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

Elasticsearch 权威指南中文版(2.X)

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

Elastic Stack 全部文档入口

https://www.elastic.co/guide/index.html

有什么区别 ?

  • 《权威指南》:强调 Elasticsearch 原理

  • 《官方文档》:有版本之分,强调全面和明细API,是你开发运维的帮助文档。

如何 高效的学习 Elasticsearch 官方文档

第一:高屋建瓴,从大处建立起全局认知

看有哪些模块?

无非:部署、索引、检索、聚合、分析、文档、集群、安全等核心模块。

提前了解文档全貌及章节脉络,避免:只见树木不见森林。

举例:总揽下 query mapping aggs 等都在哪里,出问题好去找。

避免:上来就从头看到尾。和学生时代,背四六级单词一样,真的有的同学考了几次了,单词还停留在a开头的 abandon 部分。

第二:刻意练习查阅 Elasticsearch 官方文档

遇到问题刻意去找文档,而不是google或其他搜索引擎直接不考虑。

虽然很痛苦,但有效果。

凡是花时间梳理的东西,自己记得牢固。别人给现成答案短期有效果,长期往往记不住。

实战举例:

比如:遇到问题 动态模板 就去谷歌搜索“elasticsearch 动态模板”。

但,这并不是学习、提升认知的最佳途径。

应该多思考几个问题,并带着问题翻看文档:

  • 0,英文名是不是 dynamic template ?

  • 1.动态模板 在文档的那个部分?

  • 2.动态模板和 mapping 或其他章节如何关联的?

  • 3,到底什么是动态模板?

  • 4,模板、动态模板作用是什么?

  • 5,是不是还有静态模板?

  • 6,动态模板和动态映射有什么关系?

  • 7,实际业务中怎么用?适用什么场景?

  • 8,能不能 kibana dev-tool 敲个 demo 加深理解?

第三:实在找不到,才去用 Elasticsearch 文档的搜索功能。

实践你会发现,Elasticsearch 官方文档搜索不见得能搜到您想要的结果。逐步养成查文档的习惯、逐步戒掉上来就google、上来就搜索的“不良”习惯。

第四:通过“点、线、面、体”,逐步打造属于自己的 Elasticsearch 体系。

  • 遇到不会的知识点,建议相关知识点一起过一遍,增强认知。

  • 点形成线,线形成面,面形成知识体系。

举例1:字段类型,多个字段类型构成 mapping,mapping 和 setting 构成模板,模板就是数据建模的考虑因素。

反过来,由数据建模往下考虑,两者结合效果更佳。

举例2:遇到问题,能将问题拆分到所属模块,在对应模块里查找。

可能会出现跨模块,不要怕,一并学习之。

举例3:shard allocatin 在索引模块和集群模块都有,两个都要看,一起加深认知!

刚开始很难、坚持下来你会发现很靠谱。

我们日常遇到的基础问题,80%以上都能从文档中找到答案。

Elastic 认证考试的内容,拆解梳理后,90%以上都能直接或者链接找到答案。

如果,没有找到,说明不熟。

而Elastic 认证考试不过的唯一原因:不熟!!!如果不熟,肯定通过不了考试!

关于 Elasticsearch 文档学习,常见问题

Q1:看英文有点吃力?

这不还有翻译嘛?

如果实在不行,可以先读翻译版本的中文文档,回过头来再看英文文档。

Q2:先看文档再实践,还是先实践再翻文档?

上了直接看文档,很容易找不到北,尤其遇到看不懂的,会倍增挫败感。

所以,建议:

  • 结合实践,遇到问题反查文档提升的快。

  • 如前所述,通过一个知识点,串联其他知识点,逐步形成“点、线、面、体”的知识体系。

当然,如果你要备战认证考试,两种要结合。

Q3:要多熟悉呢?

多熟悉都不为过。

腾讯大佬指出的“倒背如流”有点夸张,但是越熟悉,解决问题越快!

熟悉了,可以再去研究源码、研究底层 Lucene 原理、算法数据结构原理。

小结

对于 Elasticsearch 的学习,官方文档只是绕不开的一个基础环节。

官方文档不能包治百病,但绝对能解决 80% 以上的问题。

大家有更好的 Elasticsearch 官方文档学习方法,欢迎留言交流。

对于 Elastic Stack,如果爱,请热爱



作者:Elastic 认证工程师 / 阿里云MVP / CSDN博客专家

更多推荐:

死磕Elasticsearch ——全网首个 ElasticStack 专栏

加入中国通过Elastic认证人数最多的圈子!

©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值