热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

图解Elasticsearch原理,哈哈

随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。但是由于小史很久没有背过诗词了,飞一个字很难说出一句,很多之前很熟悉的诗句也想不起来。           

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

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

索引量爆炸

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

搜索引擎原理

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

Elasticsearch 简介

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

Elasticsearch 基本概念

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

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

 

图解Elasticsearch原理,哈哈

 

 

Elasticsearch 分布式原理

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

ELK 系统

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

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

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

图解Elasticsearch原理,哈哈

 

 

总结

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

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

推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
author-avatar
小爬虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有