终于有人把Elasticsearch原理讲透了!

Posted 壹佰案例

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终于有人把Elasticsearch原理讲透了!相关的知识,希望对你有一定的参考价值。

本文来源 | 互联网侦察

作者  | channingbreeze,北航硕士毕业,阿里五年技术老鸟,全栈工程师,前慕课网讲师,phaser小站创始人。


小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了。


随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。

终于有人把Elasticsearch原理讲透了!

但是由于小史很久没有背过诗词了,飞一个字很难说出一句,很多之前很熟悉的诗句也想不起来。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


倒排索引


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

吕老师:但是我让你说出带“前”字的诗句,由于没有索引,你只能遍历脑海中所有诗词,当你的脑海中诗词量大的时候,就很难在短时间内得到结果了。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!



索引量爆炸


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

搜索引擎原理


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


Elasticsearch 简介


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:但是 Lucene 还是一个库,必须要懂一点搜索引擎原理的人才能用的好,所以后来又有人基于 Lucene 进行封装,写出了 Elasticsearch。


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


Elasticsearch 基本概念


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:类型是用来定义数据结构的,你可以认为是 mysql 中的一张表。文档就是最终的数据了,你可以认为一个文档就是一条记录。


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:比如一首诗,有诗题、作者、朝代、字数、诗内容等字段,那么首先,我们可以建立一个名叫 Poems 的索引,然后创建一个名叫 Poem 的类型,类型是通过 Mapping 来定义每个字段的类型。


比如诗题、作者、朝代都是 Keyword 类型,诗内容是 Text 类型,而字数是 Integer 类型,最后就是把数据组织成 Json 格式存放进去了。


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:这个问题问得好,这涉及到分词的问题,Keyword 类型是不会分词的,直接根据字符串内容建立反向索引,Text 类型在存入 Elasticsearch 的时候,会先分词,然后根据分词后的内容建立反向索引。


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:之前我们说过,Elasticsearch 把操作都封装成了 HTTP 的 API,我们只要给 Elasticsearch 发送 HTTP 请求就行。


比如使用 curl -XPUT 'http://ip:port/poems',就能建立一个名为 Poems 的索引,其他操作也是类似的。


终于有人把Elasticsearch原理讲透了!


Elasticsearch 分布式原理


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

吕老师:没错,Elasticsearch 也是会对数据进行切分,同时每一个分片会保存多个副本,其原因和 HDFS 是一样的,都是为了保证分布式环境下的高可用。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

吕老师:没错,在 Elasticsearch 中,节点是对等的,节点间会通过自己的一些规则选取集群的 Master,Master 会负责集群状态信息的改变,并同步给其他节点。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:注意,只有建立索引和类型需要经过 Master,数据的写入有一个简单的 Routing 规则,可以 Route 到集群中的任意节点,所以数据写入压力是分散在整个集群的。

终于有人把Elasticsearch原理讲透了!

ELK 系统


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

吕老师:其实很多公司都用 Elasticsearch 搭建 ELK 系统,也就是日志分析系统。其中 E 就是 Elasticsearch,L 是 Logstash,是一个日志收集系统,K 是 Kibana,是一个数据可视化平台。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:分析日志的用处可大了,你想,假如一个分布式系统有 1000 台机器,系统出现故障时,我要看下日志,还得一台一台登录上去查看,是不是非常麻烦?


终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


吕老师:但是如果日志接入了 ELK 系统就不一样。比如系统运行过程中,突然出现了异常,在日志中就能及时反馈,日志进入 ELK 系统中,我们直接在 Kibana 就能看到日志情况。如果再接入一些实时计算模块,还能做实时报警功能。

终于有人把Elasticsearch原理讲透了!

终于有人把Elasticsearch原理讲透了!


搜索引擎原理


小史学完了 Elasticsearch,在笔记本上写下了如下记录:


  • 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。

  • 搜索引擎原理就是建立反向索引。

  • Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。

  • Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。

  • Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。

  • Elasticsearch 一个典型应用就是 ELK 日志分析系统。


写完,又高高兴兴背诗去了。


开发视图用于描述系统的模块划分和组成,以及细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程。



观书有感(朱熹)

半亩方塘一鉴开,天光云影共徘徊。

问渠那得清如许?为有源头活水来。



活动推荐


2019年6月21-23日,GIAC全球互联网架构大会将在深圳举办,组委会从互联网架构最热门的Cloud-Native、IoT、人工智能等前沿技术、数据及商业智能、大中台、经典架构、工程文化及管理等领域甄选前沿的有典型代表的技术创新及研发实践的架构案例,邀请了BAT、美团、滴滴等企业技术专家为我们分享最新的技术成果,识别图中二维码或者点击“阅读原文”即可有机会获得大会体验票一张!


以上是关于终于有人把Elasticsearch原理讲透了!的主要内容,如果未能解决你的问题,请参考以下文章

看了 B 站 Elasticsearch 视频的标题,我仿佛看到了内卷的天花板

给讲透了(建议收藏)

终于讲透了,史上最详细的RS485自动收发电路你一定要掌握

讲透了!Python 垃圾回收机制与原理解析

深入JVM,这本书讲透了G1回收的原理和实现!

终于有人把elasticsearch原理讲通了!