图解-elasticsearch 原理

原文地址 mp.weixin.qq.com

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

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

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

【倒排索引】

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

【索引量爆炸】

【搜索引擎原理】

【elasticsearch 简介】

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

【elasticsearch 基本概念】

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

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

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

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

【elasticsearch 分布式原理】

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

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

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

【elk 系统】

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

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

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

【笔记】

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

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

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

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

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

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

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

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

观书有感

朱熹

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值