ElasticSerach核心概念(三更)

简介: ElasticSerach核心概念(三更)

正文


ES核心概念


概述


在前两更中已经讲了es是什么,如何安装和启动,那么es到底是怎么去存储数据的呢?又是如何搜索的效率如此之高呢?带着问题来学习!


集群、节点、索引、类型、分片、映射到底是什么?


首先了解es和关系型数据库的对比!JSON!


DB ES
数据库(database) 索引(indices)
表(tables) types
行(row) documents
字段(rows) fields


上述分析


索引(indices):相当于db中的数据库

types:相当于DB中的表但是7.X版本后会被慢慢弃用8.X将彻底弃用!这里做个了解即可

documents:相当于DB中的行也就是数据

fields:相当于DB中的字段 这很好理解 在ES中作用相似 是documents的字段(例如 id,name,age)


es集群概念


es后台把每个索引都分为多个分片,每个分片在不同的服务器上迁移

所以es启动就是一个集群!因为默认开启就会进行分片,只是如果只搭了一台服务器看不出来而已!

什么是分布式,启动就是集群!

在浏览器输入:http://127.0.0.1:9200

20200929222938441.png


什么是 索引,文档,类型


索引:因为es全部都是json格式存储的,可以把索引理解为一个非常大的集合,而集合内装的每一个对象则是documents文档,文档中则是使用很多不同类型的feilds存储的!然后被存入各个分片上。

文档:在一更中说过 es是面向文档的!那就意味着文档是索引和搜索的最小单位!文档有几个重要的属性。


  1. 自我包含,一个文档同时包含字段和对应的值,也就是同时包含key,value 例如我要搜索name=zhangsan的数据,那么就能把对应的value获取出来。
  2. 层次型,一个文档里可以包含自我文档,复杂的逻辑实体就是这么来的!{就是一个json,到后面使用springboot测试的时候可以使用fastjson,它能够帮助我们自动生成索引!}
  3. 灵活的结构,我们都知道在关系型数据库中的表结构必须预定设置类型,而使用es操作文档时则是非常灵活的,有时候我们可以忽略某个字段或者动态的新增一个新字段!可以理解为 文档就是一条条的数据!


类型:在文档中是可以像关系型数据库一样设置类型的,例如DB中的varchar->对应es string,keyword,DB中date->es date 等等!使用es时最安全的方式就是预先设置字段类型,这就跟关系型数据库有点殊途同归了, 另外如果在一个文档中没有设置类型 那么es则会自动识别注入类型(有几率与我们预想的类型不同)。


节点和分片


一个集群至少有一个节点,而这个节点就是我们的elasticSerach进程,节点可以由多个索引默认的,如果创建索引那么将会有默认五个分片(primary shard,又称主分片)构成的,每一个分片将会有一个副本(replica shard,又称复制分片)用白话说就是 我们创建的索引不止有一个地方可以存 默认存了五分 我们可以通过分片把他们搭在不同的集群上(索引的默认分片数量可以在kinbana中设置模板引擎自定义数量)

20200929234932595.png

上图是一个有三个节点的集群,可以看到三个主分片和对应的复制分片都不会在同一个节点上,这样有利于当某个节点挂了,数据也不会丢失。


实际上一个分片就是一个Lucene索引,一个包含倒排索引的文件目录,倒排索引的结构使es不用全盘扫描全部文档的情况下就能告诉你哪些文档包含特定的关键字,等等!!!!倒排索引是个什么鬼?????

然而倒排索引是es的重中之重,搜索为何如此之快的关键所在!!!

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
559 0
|
存储 自然语言处理 IDE
通义灵码初识
讲述什么是通义灵码、适用环境、基本操作
|
编解码 中间件 Go
Go语言学习 - RPC篇:gRPC拦截器剖析
我们在前几讲提到过,优秀的RPC框架都提供了`middleware`的能力,可以减少很多重复代码的编写。在gRPC-Gateway的方案里,包括了两块中间件的能力: 1. gRPC中的`ServerOption`,是所有gRPC+HTTP都会被处理 2. gRPC-Gateway中的`ServeMuxOption`,只有HTTP协议会被处理 今天,我们先关注共同部分的`ServerOption`,它提供的能力最为全面,让我们一起了解下。
353 0
|
存储 安全 API
如何对 API 进行安全加密?
对API进行安全加密是保障数据安全和系统稳定的重要措施
1275 60
|
存储 数据采集 监控
一文详解全栈可观测的实现路径
一文详解全栈可观测的实现路径
1919 105
|
传感器 物联网 5G
5G技术:物联网与实时通讯的融合
【9月更文挑战第27天】第五代移动通信技术(5G)与物联网(IoT)的融合正引领我们进入智能化新时代。5G凭借高速率、低时延和大连接等特点,为物联网的广泛应用奠定了基础。本文深入探讨5G技术特点及与物联网融合带来的革命性变革,涵盖智能家居、工业自动化、智慧城市和医疗健康等多个领域。尽管面临数据安全、网络建设和设备互操作性等挑战,但5G与物联网的融合将推动各行各业实现前所未有的变革和机遇,助力实现更加智能、互联的新时代。
|
缓存 前端开发
后端MultipartFile接收文件转Base64
后端MultipartFile接收文件转Base64
234 0
|
运维 数据安全/隐私保护 网络协议
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(八)
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(八)
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(八)
|
运维 负载均衡 数据库
为什么要使用微服务架构?
本文讨论了从传统单体架构到微服务架构的转变。单体架构将所有功能集成在一个代码库中,导致复杂性高、扩展性和维护困难。相比之下,微服务架构将大型应用拆分为独立服务,降低了耦合度,优点包括易于开发和维护、快速启动、按需伸缩和更强的稳定性。然而,微服务也带来了部署管理难度增加、分布式事务一致性问题和故障定位困难等挑战。为解决这些问题,推荐了.NET微服务框架Wing。
316 4
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
1121 6