Elasticsearch-Es核心概念

概述

在前面讲述中,我们已经掌握了什么是es,同时也把es的服务已经安装启动,那么es是如何去储存数据,数据结构是什么,那么又是如何实现搜索的?
集 群 , 节 点 , 索 引 , 类 型 , 文 档 , 分 片 , 映 射 是 什 么 ? \color{#FF00FF}{集群,节点,索引,类型,文档,分片,映射是什么?}

es是面向文档,关系行数据库和es的对比

Rlational DBElasticsearch
数据库索引
type
documnets
字段fields

Elasticsearch 在后台把每一个索引划分成多个分片,每一个分片可以在集群中的不同服务器之间进行迁移

逻辑设计

一个索引类型中,包含多个文档,当我们索引一篇文档的时候,就可以通过这样的顺序去寻找:索引>类型>文档。通过这个组合我们就能索引到某个具体的文档。注意ID不必是整数,实际上它是一个字符串

文档

在Elasticsearch中,文档有几个重要的属性

  • 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key和value
  • 可以是层次行的,一个文档中包含子文档
  • 灵活的定义,文档不依赖预先定义的模式,我们都知道在关系型数据库中,需要提前定义字段才可以使用,在es中就不需要,对于es中的字段,我们可以忽略某一个字段,或者动态的添加一个新的字段

尽管我们可以随意的添加字段,但是每一个字段类型非常重要,因为es会保存字段和类型之间的映射以及其他的设置,这样映射具体到每一个映射的每一种类型,这也是为什么在es中,类型有时候也称为映射类型

类型

类型是文档的逻辑容器,就像关系型数据库一样,表格是行的容器。类型中对于字段的定义称之为映射,比如name映射为字符串类型。我们说文档是无模式的,他们不需要拥有映射中所定义的所有字段,比如新增一个字段,es怎么做:新增一个18,es就开始猜,这是整型,还是字符串。同时也可能猜不对,所以最安全的方法就是提前定义好所需要的映射,这一点就和关系型数据库疏途同归。

索引

主节点索引是映射类型的容器,es中的索引是一个非常强大的文档集合。索引储存了映射的字段类型和其他设置,然后他们被储存到各个分片上面,我们来研究一下分片是如何工作的

物理设计 : 节点和分片 如何工作

一个集群至少有一个节点,而一个节点就是一个es进程,节点可以有多个索引为默认的,如果你创建索引,那么索引将会有5个分片构成,每一个主分片会有一个副本

在这里插入图片描述
上图是一个有三个节点的集群,可以看到主分片和副分片都不在同一个节点之内,这样的设计有利于某一个节点挂掉了,数据也不至于丢失,实际上,一个分片是一个Licene索引,一个包含倒排索引的文件目录,倒排索引在es不完全扫描全部文档的情况下面,就能告诉你有多少个关键字

倒排索引

es使用的是一种称为倒排索引的结构,采用Lucene倒排索作为底层,这种结构适用于全文搜索,一个索引由文档中不重复的列组成,对于每一个词,都有一个包含它的文档列表

具体的数据结构我在这里就不在赘述了,小船夫们需要学会面向百度编程     点我😇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敏姐儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值