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

摘要:
索引量爆炸搜索引擎原理Elasticsearch简介吕老师:但是Lucene还是一个库,必须要懂一点搜索引擎原理的人才能用的好,所以后来又有人基于Lucene进行封装,写出了Elasticsearch。Elasticsearch基本概念吕老师:类型是用来定义数据结构的,你可以认为是MySQL中的一张表。Elasticsearch在Lucene的基础上进行封装,实现了分布式搜索引擎。Elasticsearch也是Master-slave架构,也实现了数据的分片和备份。Elasticsearch一个典型应用就是ELK日志分析系统。

本文转载自: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 简介

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

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

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

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

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

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

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

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

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

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

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

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

Elasticsearch 基本概念

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

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

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

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

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

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

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

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

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

吕老师:比如一首诗,有诗题、作者、朝代、字数、诗内容等字段,那么首先,我们可以建立一个名叫 Poems 的索引,然后创建一个名叫 Poem 的类型,类型是通过 Mapping 来定义每个字段的类型。

比如诗题、作者、朝代都是 Keyword 类型,诗内容是 Text 类型,而字数是 Integer 类型,***就是把数据组织成 Json 格式存放进去了。

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

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

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

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

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

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

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

吕老师:之前我们说过,Elasticsearch 把操作都封装成了 HTTP 的 API,我们只要给 Elasticsearch 发送 HTTP 请求就行。

比如使用 curl -XPUT 'http://ip:port/poems',就能建立一个名为 Poems 的索引,其他操作也是类似的。

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

Elasticsearch 分布式原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ELK 系统

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

免责声明:文章转载自《终于有人把Elasticsearch原理讲透了!》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇基于数据库的vs2019的T4模版代码生成器(一)基于sqlserver数据库git add --all 为啥不能添加空文件夹,这样设计的初衷是下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

es更新说明(dsl)

一.旧版elasticsearch-dsl 很多同学在python搜索引擎视频中关于看到的第十章elasticsearch使用中使用python创建mapping老师使用的以下代码,这些代码对于elasticsearch-dsl的引用已经失效,会报异常错误 from datetime import datetime from elasticsearch_d...

使用SQL语句查询Elasticsearch索引数据

Elasticsearch 的官方查询语言是 Query DSL,存在毕竟有存在的道理,存在即合理。SQL 作为一个数据库查询语言,它语法简洁,书写方便而且大部分服务端程序员都清楚了解和熟知它的写法。但是作为一个 ES 萌新来说,就算他已经是一位编程界的老江湖,但是如果他不熟悉 ES ,那么他如果要使用公司已经搭好的 ES 服务,他必须要先学习 Query...

Logstash消费Kafka输出至Elasticsearch配置文件示例

  input { kafka { bootstrap_servers => "192.168.32.36:9092,192.168.32.37:9092,192.168.32.38:9092" topics => "msa-log-prod" codec => "js...

elasticsearch 高级搜索示例 es7.0

1 基础数据 1.1 创建索引 PUT mytest { "mappings": { "properties": { "title": { "type": "text", "fields": { "keyword": { "type": "text",...

Kubernetes 系列(八):搭建EFK日志收集系统

Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。 Elasticsearch 通...

Elastic search 基本使用

1. elasticsearch 命令的基本格式 RESTful接口URL的格式: http://localhost:9200/<index>/<type>/[<id>] 其中index、type是必须提供的。id是可选的,不提供es会自动生成。index、type将信息进行分层,利于管理。index可以理解为数据库;t...