Es的核心概念

2023-05-16

索引(Index)

一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的 索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必 须全部是小写字母),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时 候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。 能搜索的数据必须索引,这样的好处是可以提高查询速度,比如:新华字典前面的目录 就是索引的意思,目录可以提高查询速度。 Elasticsearch 索引的精髓:一切设计都是为了提高搜索的性能。

类型(Type) 在一个索引中,你可以定义一种或多种类型。 一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具 有一组共同字段的文档定义一个类型。不同的版本,类型发生了不同的变化 版本 Type 5.x 支持多种 type 6.x 只能有一种 type 7.x 默认不再支持自定义索引类型(默认类型为:_doc)

 文档(Document) 一个文档是一个可被索引的基础信息单元,也就是一条数据 比如:你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个 订单的一个文档。文档以 JSON(Javascript Object Notation)格式来表示,而 JSON 是一个 到处存在的互联网数据交互格式。 在一个 index/type 里面,你可以存储任意多的文档。

 字段(Field) 相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。

映射(Mapping) mapping 是处理数据的方式和规则方面做一些限制,如:某个字段的数据类型、默认值、 分析器、是否被索引等等。这些都是映射里面可以设置的,其它就是处理 ES 里面数据的一 些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射, 并且需要思考如何建立映射才能对性能更好。

分片(Shards) 一个索引可以存储超出单个节点硬件限制的大量数据。比如,一个具有 10 亿文档数据 的索引占据 1TB 的磁盘空间,而任一节点都可能没有这样大的磁盘空间。或者单个节点处 理搜索请求,响应太慢。为了解决这个问题,Elasticsearch 提供了将索引划分成多份的能力, 每一份就称之为分片。当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分 片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点 上。 分片很重要,主要有两方面的原因: 1)允许你水平分割 / 扩展你的内容容量。 2)允许你在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量。 至于一个分片怎样分布,它的文档怎样聚合和搜索请求,是完全由 Elasticsearch 管理的, 对于作为用户的你来说,这些都是透明的,无需过分关心。 被混淆的概念是,一个 Lucene 索引 我们在 Elasticsearch 称作 分片 。 一个 Elasticsearch 索引 是分片的集合。 当 Elasticsearch 在索引中搜索的时候, 他发送查询 到每一个属于索引的分片(Lucene 索引),然后合并每个分片的结果到一个全局的结果集。

 副本(Replicas) 在一个网络 / 云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于 离线状态,或者由于任何原因消失了,这种情况下,有一个故障转移机制是非常有用并且是 强烈推荐的。为此目的,Elasticsearch 允许你创建分片的一份或多份拷贝,这些拷贝叫做复 制分片(副本)。 复制分片之所以重要,有两个主要原因:  在分片/节点失败的情况下,提供了高可用性。因为这个原因,注意到复制分片从不与 原/主要(original/primary)分片置于同一节点上是非常重要的。  扩展你的搜索量/吞吐量,因为搜索可以在所有的副本上并行运行。每个索引可以被分成多个分片。一个索引也可以被复制 0 次(意思是没有复制) 或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主 分片的拷贝)之别。分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可 以在任何时候动态地改变复制的数量,但是你事后不能改变分片的数量。默认情况下, Elasticsearch 中的每个索引被分片 1 个主分片和 1 个复制,这意味着,如果你的集群中至少 有两个节点,你的索引将会有 1 个主分片和另外 1 个复制分片(1 个完全拷贝),这样的话 每个索引总共就有 2 个分片,我们需要根据索引需要确定分片个数。

分配(Allocation) 将分片分配给某个节点的过程,包括分配主分片或者副本。如果是副本,还包含从主分 片复制数据的过程。这个过程是由 master 节点完成的。

 系统架构 一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者 从集群中移除节点时,集群将会重新平均分布所有的数据。 当一个节点被选举成为主节点时, 它将负责管理集群范围内的所有变更,例如增加、 删除索引,或者增加、删除节点等。 而主节点并不需要涉及到文档级别的变更和搜索等操 作,所以当集群只拥有一个主节点的情况下,即使流量的增加它也不会成为瓶颈。 任何节 点都可以成为主节点。我们的示例集群就只有一个节点,所以它同时也成为了主节点。 作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道 任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论 我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将 最终结果返回給客户端。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Es的核心概念 的相关文章

随机推荐

  • 华为开发者大会2019观后感

  • element 时间日期选择器限制选择至少7天,快捷选择回调使用methods内的方法

    template部分代码 lt el date picker append to body 61 34 false 34 64 change 61 34 dateChange1 34 v model 61 34 targetTime1 34
  • win7+Ubuntu18.04双磁盘双系统安装踩坑记录

    win7 43 Ubuntu18 04双磁盘双系统安装踩坑记录 重装双系统 之前安装的双系统不知道什么原因不能进入了 xff0c 只能进入win7系统 xff0c 试了很多办法后决定重装ubuntu 1 备份原始Ubuntu重要文件 进入w
  • 指针和函数

    指针和函数 1 形参改变不了实参的值 图1 图1 2 通过地址传递可以改变实参的值 xff1a 图2 注意 xff1a 在图1与图2 在定义函数参数中 a b前 星号 的有无 说明传递的是 实参的地址与实参的值 2 函数参数中如果有数组 都
  • 文件操作

    文件操作 1 文件分类 xff1a 文本文件 xff08 例 xff1a 记事本 xff09 二进制文件 xff08 例 xff1a 视频文件 xff09 xff0c 优点 xff1a 所占内存较小 操作文件地址的两种方式 xff1a 相对
  • 简易文本编辑器

    C语言QT开发简易文本编辑器 文件 xff1a 新建 打开 保存 另存为 推出 编辑 xff1a 撤销 赋值 粘贴 剪切 构架 xff1a 编译 帮助 xff1a 关于 删除下方对框栏 设置textexit全屏 先点击textedit 然后
  • 二叉树编程

    二叉树编程 span class token macro property span class token directive keyword define span CRT SECURE NO WARNINGS span span cl
  • 字符串

    字符串 目标 认识字符串下标切片常用操作方法 一 认识字符串 字符串是 Python 中最常用的数据类型 我们一般使用引号来创建字符串 创建字符串很简单 xff0c 只要为变量分配一个值即可 a span class token opera
  • 集合

    集合 目标 创建集合集合数据的特点集合的常见操作 一 创建集合 创建集合使用 或set xff0c 但是如果要创建空集合只能使用set xff0c 因为 用来创建空字典 s1 span class token operator 61 spa
  • 函数一

    文章目录 函数目标一 函数的作用二 函数的使用步骤2 1 定义函数2 2 调用函数2 3 快速体验 三 函数的参数作用四 函数的返回值作用4 1 应用 五 函数的说明文档5 1 语法5 2 快速体验 六 函数嵌套调用七 函数应用7 1 打印
  • 概率论的基本概念

    概率论的起源与发展 概率论产生于十六世纪十六世纪中叶 xff0c 卡当在赌博时研究不输的方法1654年 xff0c 德 美黑 合理分配赌注问题 1657年 xff0c 惠更斯 论机会游戏的计算 1933年 xff0c 柯尔莫哥洛夫 概率论的
  • java中的常量与变量

    常量 常量 xff1a 在程序运行期间 xff0c 固定不变的量 常量的分类 xff1a 1 字符串常量 xff1a 凡是用双引号引起来的部分 xff0c 叫做字符串常量 例如 xff1a abc Hello 123 2 整数常量 xff1
  • OA多级审批流程表设计方案以及开发思路(非常细节)

    OA office automation 想必大家都已不陌生 xff0c 甚至还非常熟悉 xff0c 是的没错 xff0c 本文就来讲解一下OA中的核心业务 xff0c 审批流程是如何一步步实现的 本文干货满满 建议静下心来细细品 被审核流
  • 异或交换两个数

    异或交换两个数 a和b是两个整数 xff0c 经过以下三次异或操作 xff0c 可以达到交换目的 xff1a a 61 a b b 61 a b a 61 a b 首先要理解 xff0c 什么是 异或 操作 二进制两数运算结果 xff1a
  • 二叉树算法框架思想

    二叉树算法设计的总路线 xff1a 明确一个节点要做的事情 xff0c 然后剩下的事抛给框架 span class token keyword void span span class token function traverse spa
  • Python3爬取淘宝网商品数据!

    分析淘宝网 这次选择的是淘宝网热卖而不是淘宝网 xff0c 二者虽然名字有不同 xff0c 但是数据还是一样的 xff0c 区别就在于前者把后者的所有店铺和商品的海量数据按照销售量 好评度 信誉度综合测评 重新计算 重新排序展现给买家的一个
  • 利用 Python 一键下载网易云音乐 10W+ 乐库

    如果你常听音乐的话 xff0c 肯定绕不开网易云 xff0c 作为一款有情怀的音乐 App xff0c 我对网易云也是喜爱有加 虽然说现在都已经是 5G 时代了 xff0c 大家的手机流量都绰绰有余 xff0c 但在线播放还是不如本地存着音
  • Python实现淘宝准点抢单!双十一秒杀神器啊!还不来学?

    一 ChromeDriver的安装 若想使用Selenium成功调用Chrome浏览器完成相应的操作 xff0c 需要通过ChromeDriver来驱动 我们在下载之前先来确认下我们使用的Chrome浏览器版本 只需要红框内几位相同即可 根
  • Python 爬虫:获取 JS 动态内容——应用宝搜索应用!

    1 1 Ajax 异步加载生成网页内容 现在越来越多的网页使用 Ajax 异步加载方式 xff0c 即网页中的一些内容由前端的 JS 动态生成 由于呈现在网页上的内容是由 JS 生成而来 xff0c 我们能够在浏览器上看到 xff0c 但是
  • Es的核心概念

    索引 xff08 Index xff09 一个索引就是一个拥有几分相似特征的文档的集合 比如说 xff0c 你可以有一个客户数据的 索引 xff0c 另一个产品目录的索引 xff0c 还有一个订单数据的索引 一个索引由一个名字来标识 xff