add by zhj:  作者是阿里的技术专家,把技术解释的通俗易懂,太牛了。该文转自作者的个人公众号:互联网侦察,里面有很多系列文章,

关于算法,大数据,面试现场三个系列,通过漫画学到知识,太棒了


 

作者:channingbreeze

公众号:互联网侦察

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

对小史面试情况感兴趣的同学可以观看面试现场系列。

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_02

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

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_03

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_04

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_05

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_06

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_07

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_08

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_09

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_10

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_11

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_12

【倒排索引】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_13

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_14

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_15

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_16

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_17

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_18

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_19

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_20

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_21

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_22

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_23

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_24

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_25

【索引量爆炸】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_26

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_27

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_28

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_29

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_30

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_31

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_32

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_33

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_34

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_35

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_36

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_37

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_38

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_39

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_40

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_41

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_42

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_43

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_44

【搜索引擎原理】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_45

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_46

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_47

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_48

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_49

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_50

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_51

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_52

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_53

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_54

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_55

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_56

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_57

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_58

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_59

【elasticsearch简介】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_60

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_61

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_62

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_63

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_64

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_65

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_66

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_67

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_68

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_69

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_70

【elasticsearch基本概念】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_71

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_72

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_73

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_74

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_75

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_76

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_77

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_78

吕老师:比如一首诗,有诗题、作者、朝代、字数、诗内容等字段,那么首先,我们可以建立一个名叫poems的索引,然后创建一个名叫poem的类型,类型是通过mapping来定义每个字段的类型,比如诗题、作者、朝代都是keyword类型,诗内容是text类型,而字数是integer类型,最后就是把数据组织成json格式存放进去了。

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_79

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_80

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_81

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_82

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_83

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_84

吕老师:之前我们说过,elasticsearch把操作都封装成了http的api,我们只要给elasticsearch发送http请求就行。比如使用curl -XPUT 'http://ip:port/poems',就能建立一个名为poems的索引,其他操作也是类似的。

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_85

【elasticsearch分布式原理】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_86

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_87

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_88

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_89

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_90

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_91

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_92

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_93

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_94

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_95

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_96

【elk系统】

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_97

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_98

吕老师:其实很多公司都用elasticsearch搭建elk系统,也就是日志分析系统。其中e就是elasticsearch,l是logstash,是一个日志收集系统,k是kibana,是一个数据可视化平台。

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_99


【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_100

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_101

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_102

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

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_数据_103

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_elasticsearch_104

【生活现场】从诗词大会飞花令到elasticsearch原理解析(转)_搜索引擎_105

【笔记】

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

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

2、搜索引擎原理就是建立反向索引

3、elasticsearch在lucene的基础上进行封装,实现了分布式搜索引擎

4、elasticsearch中的索引、类型和文档的概念比较重要,类似于mysql中的数据库、表和行

5、elasticsearch也是master-slave架构,也实现了数据的分片和备份

6、elasticsearch一个典型应用就是elk日志分析系统

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


观书有感

朱熹

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

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