头图

> 本文最早发布于公众号极客军营原文地址

今年5月,由于参与的项目中有大量的全文搜索业务场景,我开始深入学习和使用Elasticsearch。然而,刚开始的学习之路并不顺利,这主要有如下两点原因:

  1. Elasticsearch的相关资料比较少,优秀的书籍确实不多;
  2. Elasticsearch更新太快,且新版本与老版本相比变化较大,很多书籍的内容都有些过时。

经过这半年多的学习和实践,我对Elasticsearch有了更加深入的了解。于是我有了一个想法:写一份关于Elasticsearch的教程,一是对自己的学习成果做一个总结;二是希望能够帮助到更多的人学习Elasticsearch。

该系列教程将基于Elasticsearch的最新版本7.15.2(截至21年12月7日)。结合我自己的学习经历,我计划将整个教程按照从易到难,分成如下四个章节:

一、基础篇

相信很多读者跟我一样,都是一线研发工程师。学习Elasticsearch主要是为了能快速掌握其基本概念,具备开发搜索类应用的能力。本章目标就是能让大家快速掌握Elasticsearch的基础知识,尽快让大家有能力利用Elasticsearch开发业务功能。

本章不会涉及分片、副本、集群等分布式概念,更不会包含对Apache Lucene的讲解。因为这些对Elasticsearch应用开发都是透明的。

学习完本章后,你将会了解如下内容:

  1. 什么是索引;
  2. 什么是索引的mapping;
  3. ElasticSearch数据的CRUD操作;
  4. 常用的搜索(search)操作;
  5. 搜索的原理——分词器、倒排索引;

只要认真学习完本章内容后,你一定有能力胜任Elasticsearch应用的开发工作,并为后续的深入学习打好基础。

二、分布式篇

虽然分片、副本、集群这些概念对应用开发是透明的,但对于一些高级别同学,除了要负责普通的业务需求开发外,还要能胜任生产运维、容量规划、系统调优等工作。这就要求我们对Elasticsearch集群的分布式工作方式有深刻的理解。

本章会介绍Elasticsearch集群如何水平扩展、如何确保集群高可用、如何执行分布式搜索等内容。

三、深入搜索篇

在学习完前两个章节后,相信大家已经有能力在工作中很好的使用Elasticsearch了。但业务需求复杂多变,如何为用户提供更精准的搜索结果,提供用户真正想要获取的信息是我们不断追求的目标。本章将深挖搜索的各项特性,介绍如何对搜索结果进行优化。

四、深入聚合篇

除了搜索以外,ElasticSearch还是一个大数据分析平台,具有非常强的数据分析能力。相比于Hadoop的“T+1”时效性,ElasticSearch的性能更高,可以近实时的获取数据分析结果。本章会对ElasticSearch聚合分析的能力做深入的介绍,帮助大家具备从海量数据中快速获取分析结果的能力。

最后,感谢阅读本文的你,希望你能喜欢接下来的教程。下面话不多说,让我们开启ElasticSearch学习之旅吧!

喜欢本文的朋友,欢迎关注公众号极客军营,收看更多精彩内容


poype
425 声望79 粉丝