终于有人把Elasticsearch原理讲透了
原创转自: 终于,有人拿走了Elasticsearch我已经彻底解释了原理! - 51CTO.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我在笔记本上写了以下记录:
- 反向索引,也称为倒排索引,基于文章内容中的关键字。
- 搜索引擎原则就是建立反向索引。
- Elasticsearch 在 Lucene 在封装的基础上,已经实现了分布式搜索引擎。
- Elasticsearch 索引、类型和文档的概念非常重要,类似于 MySQL 数据库、表和行。
- Elasticsearch 也是 Master-slave 架构还支持数据分片和备份。
- Elasticsearch 典型的应用是 ELK 日志分析系统。
写完后,我高兴地又背诵了这首诗。
阅读与感受(朱熹)
半亩池一开,天云盘旋在一起。
问题通道有多清晰?要有淡水源。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除