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

原文链接: http://developer.51cto.com/art/201904/594615.htm

今天在网上看到一篇很有意思的博客↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

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

终于有人把Elasticsearch原理讲透了!_第1张图片

终于有人把Elasticsearch原理讲透了!_第2张图片

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

终于有人把Elasticsearch原理讲透了!_第3张图片

终于有人把Elasticsearch原理讲透了!_第4张图片

终于有人把Elasticsearch原理讲透了!_第5张图片

终于有人把Elasticsearch原理讲透了!_第6张图片

终于有人把Elasticsearch原理讲透了!_第7张图片

终于有人把Elasticsearch原理讲透了!_第8张图片

终于有人把Elasticsearch原理讲透了!_第9张图片

终于有人把Elasticsearch原理讲透了!_第10张图片

终于有人把Elasticsearch原理讲透了!_第11张图片

终于有人把Elasticsearch原理讲透了!_第12张图片

倒排索引

终于有人把Elasticsearch原理讲透了!_第13张图片

终于有人把Elasticsearch原理讲透了!_第14张图片

终于有人把Elasticsearch原理讲透了!_第15张图片

终于有人把Elasticsearch原理讲透了!_第16张图片

终于有人把Elasticsearch原理讲透了!_第17张图片

终于有人把Elasticsearch原理讲透了!_第18张图片

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

终于有人把Elasticsearch原理讲透了!_第19张图片

终于有人把Elasticsearch原理讲透了!_第20张图片

终于有人把Elasticsearch原理讲透了!_第21张图片

终于有人把Elasticsearch原理讲透了!_第22张图片

终于有人把Elasticsearch原理讲透了!_第23张图片

终于有人把Elasticsearch原理讲透了!_第24张图片

终于有人把Elasticsearch原理讲透了!_第25张图片

索引量爆炸

终于有人把Elasticsearch原理讲透了!_第26张图片

终于有人把Elasticsearch原理讲透了!_第27张图片

终于有人把Elasticsearch原理讲透了!_第28张图片

终于有人把Elasticsearch原理讲透了!_第29张图片

终于有人把Elasticsearch原理讲透了!_第30张图片

终于有人把Elasticsearch原理讲透了!_第31张图片

终于有人把Elasticsearch原理讲透了!_第32张图片

终于有人把Elasticsearch原理讲透了!_第33张图片

终于有人把Elasticsearch原理讲透了!_第34张图片

终于有人把Elasticsearch原理讲透了!_第35张图片

终于有人把Elasticsearch原理讲透了!_第36张图片

终于有人把Elasticsearch原理讲透了!_第37张图片

终于有人把Elasticsearch原理讲透了!_第38张图片

终于有人把Elasticsearch原理讲透了!_第39张图片

终于有人把Elasticsearch原理讲透了!_第40张图片

终于有人把Elasticsearch原理讲透了!_第41张图片

终于有人把Elasticsearch原理讲透了!_第42张图片

终于有人把Elasticsearch原理讲透了!_第43张图片

终于有人把Elasticsearch原理讲透了!_第44张图片

搜索引擎原理

终于有人把Elasticsearch原理讲透了!_第45张图片

终于有人把Elasticsearch原理讲透了!_第46张图片

终于有人把Elasticsearch原理讲透了!_第47张图片

终于有人把Elasticsearch原理讲透了!_第48张图片

终于有人把Elasticsearch原理讲透了!_第49张图片

终于有人把Elasticsearch原理讲透了!_第50张图片

终于有人把Elasticsearch原理讲透了!_第51张图片

终于有人把Elasticsearch原理讲透了!_第52张图片

终于有人把Elasticsearch原理讲透了!_第53张图片

终于有人把Elasticsearch原理讲透了!_第54张图片

终于有人把Elasticsearch原理讲透了!_第55张图片

终于有人把Elasticsearch原理讲透了!_第56张图片

终于有人把Elasticsearch原理讲透了!_第57张图片

终于有人把Elasticsearch原理讲透了!_第58张图片

终于有人把Elasticsearch原理讲透了!_第59张图片

Elasticsearch 简介

终于有人把Elasticsearch原理讲透了!_第60张图片

终于有人把Elasticsearch原理讲透了!_第61张图片

终于有人把Elasticsearch原理讲透了!_第62张图片

终于有人把Elasticsearch原理讲透了!_第63张图片

终于有人把Elasticsearch原理讲透了!_第64张图片

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

终于有人把Elasticsearch原理讲透了!_第65张图片

终于有人把Elasticsearch原理讲透了!_第66张图片

终于有人把Elasticsearch原理讲透了!_第67张图片

终于有人把Elasticsearch原理讲透了!_第68张图片

终于有人把Elasticsearch原理讲透了!_第69张图片

终于有人把Elasticsearch原理讲透了!_第70张图片

Elasticsearch 基本概念

终于有人把Elasticsearch原理讲透了!_第71张图片

终于有人把Elasticsearch原理讲透了!_第72张图片

终于有人把Elasticsearch原理讲透了!_第73张图片

终于有人把Elasticsearch原理讲透了!_第74张图片

终于有人把Elasticsearch原理讲透了!_第75张图片

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

终于有人把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原理讲透了!_第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原理讲透了!_第89张图片

终于有人把Elasticsearch原理讲透了!_第90张图片

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

终于有人把Elasticsearch原理讲透了!_第91张图片

终于有人把Elasticsearch原理讲透了!_第92张图片

终于有人把Elasticsearch原理讲透了!_第93张图片

终于有人把Elasticsearch原理讲透了!_第94张图片

终于有人把Elasticsearch原理讲透了!_第95张图片

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

终于有人把Elasticsearch原理讲透了!_第96张图片

ELK 系统

终于有人把Elasticsearch原理讲透了!_第97张图片

终于有人把Elasticsearch原理讲透了!_第98张图片

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

终于有人把Elasticsearch原理讲透了!_第99张图片

终于有人把Elasticsearch原理讲透了!_第100张图片

终于有人把Elasticsearch原理讲透了!_第101张图片

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

终于有人把Elasticsearch原理讲透了!_第102张图片

终于有人把Elasticsearch原理讲透了!_第103张图片

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

 

终于有人把Elasticsearch原理讲透了!_第104张图片

终于有人把Elasticsearch原理讲透了!_第105张图片

总结

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

  • 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。
  • 搜索引擎原理就是建立反向索引。
  • Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。
  • Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。
  • Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。
  • Elasticsearch 一个典型应用就是 ELK 日志分析系统。  

 

原博客地址:http://developer.51cto.com/art/201904/594615.htm

你可能感兴趣的:(Elasticsearch,JAVA)