终于有人把Elasticsearch原理讲明白了!

📅 2026/7/10 12:25:28
终于有人把Elasticsearch原理讲明白了!
转载终于有人把Elasticsearch原理讲透了_索引随着央视诗词大会的热播小史开始对诗词感兴趣最喜欢的就是飞花令的环节。但是由于小史很久没有背过诗词了飞一个字很难说出一句很多之前很熟悉的诗句也想不起来。倒排索引吕老师但是我让你说出带“前”字的诗句由于没有索引你只能遍历脑海中所有诗词当你的脑海中诗词量大的时候就很难在短时间内得到结果了。索引量爆炸搜索引擎原理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 中节点是对等的节点间会通过自己的一些规则选取集群的 MasterMaster 会负责集群状态信息的改变并同步给其他节点。吕老师注意只有建立索引和类型需要经过 Master数据的写入有一个简单的 Routing 规则可以 Route 到集群中的任意节点所以数据写入压力是分散在整个集群的。ELK 系统吕老师其实很多公司都用 Elasticsearch 搭建 ELK 系统也就是日志分析系统。其中 E 就是 ElasticsearchL 是 Logstash是一个日志收集系统K 是 Kibana是一个数据可视化平台。吕老师分析日志的用处可大了你想假如一个分布式系统有 1000 台机器系统出现故障时我要看下日志还得一台一台登录上去查看是不是非常麻烦吕老师但是如果日志接入了 ELK 系统就不一样。比如系统运行过程中突然出现了异常在日志中就能及时反馈日志进入 ELK 系统中我们直接在 Kibana 就能看到日志情况。如果再接入一些实时计算模块还能做实时报警功能。总结小史学完了 Elasticsearch在笔记本上写下了如下记录反向索引又叫倒排索引是根据文章内容中的关键字建立索引。搜索引擎原理就是建立反向索引。Elasticsearch 在 Lucene 的基础上进行封装实现了分布式搜索引擎。Elasticsearch 中的索引、类型和文档的概念比较重要类似于 MySQL 中的数据库、表和行。Elasticsearch 也是 Master-slave 架构也实现了数据的分片和备份。Elasticsearch 一个典型应用就是 ELK 日志分析系统。写完又高高兴兴背诗去了。观书有感朱熹半亩方塘一鉴开天光云影共徘徊。问渠那得清如许为有源头活水来。作者channingbreeze编辑陶家龙、孙淑娟