搜索是现代软件必备的一项基础功能,而 Elasticsearch 就是一款功能强大的开源分布式搜索与数据分析引擎

它可以从海量数据中快速找到相关信息,在同领域内几乎没有竞争对手——近两年 DBRanking 的数据库评测中,ES 在搜索引擎领域始终位列第一

当你在 GitHub 上搜索时,Elasticsearch 可以实现代码级的搜索与高亮显示 ;当你在网上购物时,ES 可为你推荐喜欢的商品;当你下班打车回家时,ES 可以通过定位附近的乘客和司机,帮助平台优化调度。

Elasticsearch 还被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。

它可以探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过使用机器学习,做到自动识别异常状况。

作为目前最流行的开源搜索引擎,ES 在全球的下载量已超过 3.5 亿次,腾讯、滴滴、今日头条、饿了么、360 安全、小米,vivo 等国内诸多知名公司都在使用 Elasticsearch。

Elasticsearch 有什么特点?


Elasticsearch 非常容易上手,具有开箱即用的特性,你可以在极短的时间内设置好开发环境,然后快速上手使用,继而在成百上千台服务器上实现 PB 级的数据处理

虽然上手快,但要做到深入理解并高效使用,可就没那么简单了,比如:

1. 为什么我的数据查不到,明明是有的啊!

2. 什么鬼?为什么这几条数据出现在搜索结果的前几位?

3. 生产环境我需要多少台机器,索引的分片数怎么样设置才是合理的?

4. 应该关注哪些指标,才能保证集群健康高效地运行?

5. 对于日志型应用,如何设置 Hot & Warm Architecture 节约成本,怎样管理和优化基于时间序列的索引数据,才能提高集群的整体性能?

4. 为什么我的集群脑裂了?数据损坏后,怎样才能恢复?

其实,想要掌握 Elasticsearch,除了要理解其分布式架构的原理外,还要了解一些信息检索领域的知识和相关技巧

分享给你一张 Elasticsearch 核心知识图谱,只有对每一个知识点仔细梳理并深入理解,才能解决工作中的实际问题。

这张图谱出自阮一鸣,我之前听过他在 Elastic 中国开发者大会的分享,讲得非常不错。

最近,得知他跟极客时间合作,推出了一门视频课《Elasticsearch 核心技术与实战》,老衲有幸提前看到了目录和一部分内容,很想推荐给你。

在课程中,他用理论与实践相结合的方式、深入浅出地讲解了 Elasticsearch,只要你坚持学习,就可以掌握 ES 的基本概念和服务搭建,了解其运行机制和常用技巧,并通过上手实战理解 ES 在实际项目中的应用。

近几年 ES 非常热门,所以去年 Elastic 公司推出了官方的 Elastic 工程师认证考试,需要考生在 3 个小时的线上考试中,动手解决 12 个实际问题,就算有多年工作经验的老手都未必能通过。

所以,这个认证的含金量还是挺高的,有证跟没证不仅能力水平可能差一个档次,收入也有可能差一个档次。

阮一鸣说,这门课覆盖了 Elastic 认证考试的全部考点,想参加考试的朋友可以将这门课作为参考教材,这也算是「学习技能之外的 bonus」了。

关于阮一鸣

阮一鸣,eBay Pronto 平台技术负责人。Pronto 平台管理了 eBay 内部上百个 Elasticsearch 集群,数据规模超过了 4000 个节点。这些集群在 ebay 的生产环境中,支撑了包括订单搜索,商品推荐,日志管理,风险控制,IT 运维,安全监控等不同领域的服务。

作为一名互联网行业的老兵,他从业近 20 年了,在大数据、云计算和性能优化方面积累了丰富的经验。同时,他还是一名连续创业者,创办过手机游戏公司、个性化音乐推荐与分享平台 8box。

他是如何讲解 Elasticsearch 的?

如果你对 Elasticsearch 有些了解,就会发现 ES 的产品迭代速度非常快,很多老的 API 都已经被废弃不再使用,搜索到的参数配置也大多发生了变化。

市面上的书籍和教程都是基于 5.x 甚至是 2.x 版本。而在课程中,哥们儿使用 Elasticsearch 最新的 7.1 版本进行教学。

所有 ES 最新版本的特性,在课程里都会有全面和直观地展现,比如:用机器学习进行异常检测;用 Canvas 展示数据;用索引的生命周期管理工具对索引进行优化等等。

结合目录,我总结了一下,这个课大概分为 5 个部分

1. 初识 Elasticsearch

Elasticsearch 核心概念、工作机制与应用场景;本地开发环境搭建;倒排索引的原理与 ES 中 Analysis 的具体细节;Mapping 设置和一些基本的 Search & Aggregation API。

2. 深入了解 Elasticsearch

理解 Elasticsearch 分布式架构的原理;相关性算分的原理;数据建模的最佳实践;深入搜索及聚合功能以提高搜索结果的相关度。

3. 管理 Elasticsearch 集群

集群的水平扩展、参数配置、性能优化、故障诊断。

4. 利用 ELK 做大数据分析

结合使用场景和数据,探索 Logstash、Kibana 的各项功能。

5. 应用实战工作坊

设计了电影搜索和 Stack Overflow 用户调查问卷数据分析两个实战项目,通过上手实践,你可以巩固所学的知识点,并运用到实际项目中。

需要什么基础,能获得什么?

这门课不仅适合有 ES 使用经验的人,也适合初学者。编程知识和数据库的相关使用经验,会对你学习 ES 有一定帮助,但并不是必须的

针对开发人员,搜索是一项被广泛需要的功能,哥们儿详细地讲解了相关的搜索概念在 Elasticsearch 中是如何对应和具体实现的。

如果你是一名 ES 的运维人员,管理了公司内部的 Elasticsearch 集群:上线前的如何进行容量规划,上线后如何保证这些集群在生产环境内稳定高效的运行,如何在凌晨识别出异常信号,及时发出告警,以避免灾难的发生。

这些问题,他在课程中都会给出相关的最佳实践

其实,无论是开发还是运维,架构师抑或数据分析师,甚至是产品经理,都应该学一学 Elastic Stack。

在大数据时代,近实时的搜索和分析能力,会让你唯快不破,洞见未来。——这句 copy 了阮一鸣,要我说其实就是升职加薪走上人生巅峰呗,这话够实在吧。

跟着好好学,结合课程中的练习和实践,相信你一定能学以致用,基于 Elasticsearch 构建出你自己的搜索和数据分析产品。

这部分好像写得有点长啊,要我总结就一句:放心学,学得会,用得着。

△扫我的海报试读或订阅

从我这里订阅有什么福利?

1. 早鸟优惠 ¥99,原价 ¥129。通过我的海报购买可以返现24,记得添加本人微信主动领取(备注极客昵称)。

说了半天,是时候上目录了,

想要干货往下看:

?点击「阅读原文」免费试看:

数据库、缓存、消息队列之外的下一站——Elasticsearch相关推荐

  1. win10安装消息队列服务器,win10下celery搭建使用

    Tips:在学习Celery过程中,使用的系统为Windows 10.Celery版本为3.1.18①.中间人使用RabbitMQ. 什么是任务队列 任务队列是一种在线程或者机器之间分发任务的机制. ...

  2. python消息队列框架持久化_消息队列如果持久化到数据库的话,相对于直接操作数据库有啥优势?...

    MQ的作用很多,典型作用: 1.削峰填谷:如果短时间内要处理的业务量大于数据库的服务能力,则可能会卡死数据库:使用MQ可以慢慢处理. 2.异步化:如果处理的工作非常耗时,则RPC的请求一直halt,对 ...

  3. 干货 | 金融级消息队列的演进 — 蚂蚁金服的实践之路

    小蚂蚁说: 消息队列作为一个数据的集散中心,承载了越来越多的场景和数据,从最开始的 OLTP 到 OLAP,甚至再到物联网.人工智能.机器学习等场景,都有很大的想像空间. 在能力上,消息队列现在拥有了 ...

  4. 消息队列的使用场景是什么样的?

    本文从异步.解耦.削峰填谷等核心应用场景,以及消息中间件常用协议.推拉模式对比来解答此问题. 什么是消息中间件 作为一种典型的消息代理组件(Message Broker),是企业级应用系统中常用的消息 ...

  5. 用MySQL模拟消息队列

    队列(queue)是一种先进先出FIFO的线性表结构,只允许在尾部插入和在头部删除.最近一两年火爆的团购秒杀等应用,其中的大并发是会把数据库压垮的,一个解决方法就是把HTTP请求放入内存中的高速队列, ...

  6. Java线程池的任务消息队列

    多线程队列 Java多线程包括线程池会用到缓存任务的队列,Java提供的线程安全队列分为两种:阻塞队列和非阻塞队列 1.阻塞队列 阻塞队列支持生产者模式和消费者模式互相等待,队列为空,消费线程阻塞,直 ...

  7. java面试题总结(六)--消息队列MQ-面试题

    原文链接 目录 1.什么是消息队列? 2.为什么要使用消息队列? 1 解耦 2 异步处理. 3 削峰 3.使用消息队列带来的一些问题 4.JMS两种消息模型 5.消息队列由哪些角色组成? 6.常见消息 ...

  8. SpringCloud笔记(四)消息队列

    消息队列 经过前面的学习,我们已经了解了我们之前的技术在分布式环境下的应用,接着我们来看最后一章的内容. 那么,什么是消息队列呢? 我们之前如果需要进行远程调用,那么一般可以通过发送HTTP请求来完成 ...

  9. RabbitMQ 中 7 种消息队列

    点击关注公众号,Java干货及时送达 七种模式介绍与应用场景 简单模式(Hello World) 做最简单的事情,一个生产者对应一个消费者,RabbitMQ相当于一个消息代理,负责将A的消息转发给B ...

最新文章

  1. 如何购买指定配置的ECS服务器【新手小白攻略】...
  2. oracle分组排序
  3. Zabbix监控交换机设置方法
  4. Qt 实现串口终端控制台,适配RT-Thread的FinSH控制台功能(提供qt源码)
  5. Android Studio无法找到tool.jar解决方法!
  6. 做嵌入式的必须学Android吗
  7. C语言-- 大端小端详解
  8. Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布
  9. MySql中,复制旧表结构到新表
  10. python 返回函数 闭包_python中闭包Closure函数作为返回值的方法示例
  11. 使用 vsftpd 服务传输文件
  12. [游戏技术]暗黑破坏神2重制版 DIABLOⅡ RESURRECTED
  13. bochs运行xp_bochs xp镜像
  14. 10大优秀的移动Web应用程序开发框架
  15. ENVI5.3+PolSARpro5.0环境下高分三号双极化数据预处理及地理编码
  16. 高等数学---第八章多元函数微分学---多元函数的极值与最值
  17. 解决Android studio运行代码手机出现xxx keeps stopping
  18. 如何在手机浏览器中打开安卓APP
  19. mybatis (高级映射 缓存 延迟加载)
  20. ASO优化:如何提高App Store应用商店中排名?

热门文章

  1. javascript php xmlhttp file,xmlHTTP实例_javascript技巧
  2. 删除 CentOS Stream 8 开机多余引导项及等待时间
  3. 201101shell脚本
  4. 23种设计模式之《单例模式》
  5. ASP.NET Core MVC 模型绑定用法及原理
  6. mysql5.7.14多实例安装
  7. PHP-什么是PHP?为什么用PHP?有谁在用PHP?
  8. android120 zhihuibeijing 开机页面
  9. 2021牛客多校3 - 24dian(dfs)
  10. 中石油训练赛 - One-Way Conveyors(边双缩点+树上差分)