elasticsearch中的关键词
集群 cluster
一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。
一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。一个节点只能通过指定某个集群的名字,来加入这个集群。
如上图,假设有一个索引,一个索引有5个分片,一个复制,总共有10个分片,为了保证高可用,每一个分片的复制分片与复制来源不在同一个节点上
节点 node
一个节点就是集群中具体的一台服务器,作为集群的一部分,它用来存储数据,参与集群的索引个搜索。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动节点的时候赋予节点。
一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,
这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。
在一个集群里,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。
分片 shards
一个节点可以存储超出单个节点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这么大的空间;或者单个节点处理搜索请求,响应太慢。
为了解决这个问题,Elasticsearch提供了将索引划分成多份的能力,这些份就叫做分片。当你创建一个索引的时候,你可以指定你想要的分片的数量。
每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。
如果集群中只有一个节点,那么所有分片都会放在同一个节点上。
分片很重要,主要有两方面原因:
1)允许你分片分割/扩展你的容量
2)允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量
至于一个分片怎么分布,它的文档如何聚合回搜索请求,是完全有Elasticsearch管理的,对于作为用户的你来说,这些都是透明。
数据路由 document routing
当客户端发起创建document的时候,es需要确定这个document放在该index的哪个分片上。这个过程就叫数据路由。
路由算法: shard = hash(routing)%number_of_primary_shards
复制 replicas
在一个网络/云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于任何原因消失了,
这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。为此目的,Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫复制。
复制之所以重要,有两个主要原因:
1)在分片/节点失败的情况下,提供了高可用性。因为这个原因,注意到复制分片从不与原/主要(original/primary)分片置于同一节点上。
2)扩展你的搜索量/吞吐量,因为搜索可以在所有的复制上并行运行。
总之,每个索引可以被分成多个分片。一个索引也可以被复制0次(意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。
分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制的数量,但是你事后不能改变分片的数量。
默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个复制,这意味着,如果你的集群中至少有两个节点,
你的索引将会有5个主分片和另外5个复制分片(1个完全拷贝),这样的话每个索引总共就有10个分片。
通过elasticsearch-head查看:
参考原文1
参考原文2
elasticsearch中的关键词相关推荐
- 图解Elasticsearch中的_source、_all、store和index属性
为什么80%的码农都做不了架构师?>>> Elasticsearch中有几个关键属性容易混淆,很多人搞不清楚_source字段里存储的是什么?store属性的true或fals ...
- Elasticsearch中的倒排索引和读写操作原理解析
目录 前言 一.倒排索引 二.Elasticsearch中的基本概念 三.写操作原理 四.读操作原理 前言 在实际的生产环境中,起初启用Elasticsearch(下称ES)是为了解决模糊查询的问题. ...
- ElasticSearch 中的中文分词器以及索引基本操作详解
文章目录 1.ElasticSearch 分词器介绍 1.1 内置分词器 1.2 中文分词器 1.2.1 安装 1.2.2 测试 1.2.3 自定义扩展词库 1.2.3.1 本地自定义 1.2.3.2 ...
- Elasticsearch中FST与前缀搜索
FST的基本概念 FST(Finite-State Transducer)是一种有限状态自动机,可以将一组输入符号映射为一组输出符号.FST由一组状态和一组转移组成,状态可以是起始状态.接受状态或既是 ...
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
如何在Elasticsearch中安装中文分词器(IK+pinyin) 如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当 ...
- elasticsearch中best fields策略dis_max和tie_breaker详解
参考:elasticsearch中best fields策略dis_max和tie_breaker详解 概念 常规multi-field搜索结果分析 dis_max参数设置 一.为帖子数据增加cont ...
- 2021年大数据ELK(五):Elasticsearch中的核心概念
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...
- textrank4zh是_GitHub - 997666901/TextRank4ZH: 从中文文本中自动提取关键词和摘要
TextRank4ZH TextRank算法可以用来从文本中提取关键词和摘要(重要的句子).TextRank4ZH是针对中文文本的TextRank算法的python算法实现. 安装 方式1: $ py ...
- 在Elasticsearch中对 text 类型的字段进行聚合异常Fielddata is disabled,Set fielddata=true
在Elasticsearch中对 text 类型的字段进行聚合异常Fielddata is disabled,Set fielddata=true 参考文章: (1)在Elasticsearch中对 ...
最新文章
- Python匿名函数:lamdba()函数
- openFileDialog 打开TXT记事本文件写入数据库
- java的编译及运行
- Unity Shader着色器优化
- 阮一峰react demo代码研究的学习笔记 - how is source code converted
- [jQuery] jQuery中如何将数组转化为json字符串,然后再转化回来?
- tornado框架hello world实践
- [C++] - 类的构造函数constructor
- HttpServletRequest对象
- 通过java.net.URLConnection发送HTTP请求
- php ddos 防御,PHP DDos的几个防御方法
- 递归算法经典实例python-浅谈Python 递归算法指归
- 开源公告|腾讯 PAG 动画组件对外开源
- VS Code插件安装位置
- uniapp路由守卫
- VMware虚拟机 之 VMX进程已提前退出
- 计算机主机机箱连接各部件,电脑的各部件组装都是用什么联接的
- 第一届中国数字藏品大会顺利召开
- 【Linux入门】— 腾讯云服务器的搭建
- 最没灵魂的爬虫——Selenium 游戏信息的爬取与分析