elasticsearch基本概念

NRT(近实时搜索)

Elasticsearch是一个NRT平台。这意味着当你索引一个文件时,在细微的延迟(通常1s)之后,该文件才能被搜索到。

Cluster(集群)

cluster是在所有节点中保存全部数据且提供联合索引和搜索功能的一个或多个节点(服务器)的集合。

每个cluster有唯一的名称,默认为”elasticsearch”。该名称很重要,因为如果节点通过cluster名称加入cluster,那么该节点就只能成为该cluster的一部分。确保在不同环境中不重复使用相同的cluster名称,除非节点加入了错误的cluster。

举例,对development、stage和production集群分别使用logging-dev、logging-stage和logging-prod。

注意,cluster可以只配置一个节点。而且,你可能也会有多个独立的clusters,每个cluster都有它自己的唯一的名称。

指定cluster名称命令

./elasticsearch -- cluster.name my_cluster_name

Node(节点)

一个node是一个server,是cluster的一部分,它存储数据且参与cluster的索引和查询功能。和cluster一样,每个节点都有自己的名称,默认在启动时赋予一个随机的人名。如果你不想要默认的名称,可以自定义名称。该名称对cluster管理很有用,特别是当你想确认哪个server对应哪个节点时。

一个node可以配置指定cluster名称加入该cluster。默认,每个节点加入名为”elasticsearch”的cluster。 
一个cluster可以包含任意数量的node。而且,如果没有其他node运行,启动一个node会默认形成一个单节点cluster,名为”elasticsearch”。

指定node名称命令

./elasticsearch--node.namemy_node_name

Index(索引)

index是具有相似特征的文档集合。例如,你可以有顾客数据的index、商品种类的index和订单数据的index。 
每个index都有唯一的名称(必须小写),当执行索引、搜索、更新和删除操作时都需要根据该名称找到对应的index。

一个cluster可以包含任意数量的index。

Type(类型)

在一个index中,可以定义一个或多个type。type是index的逻辑分类。

通常,type拥有一组通用field的文档集合。举例,你运行一个博客平台,把全部数据存储在一个index中。在这个index中,你可以为用户数据定义一个type,为博客数据定义一个type,为评论数据定义一个type。

Document(文档)

document是索引的基本单元信息。举例,你有一个客户的document、一个商品的document和一个订单的document。该document用JSON表示。

一个index/type中,可以包含任意多的document。注意,虽然document物理上存在index中,document实际上必须被分配到index中的type上。

Shards & Replicas(分片和副本)

一个index可以存储数量超出硬件限制的数据。举例,一个index包含10亿文档,占据1TB硬盘空间,就会导致无法放在单个节点硬盘上或者响应request太慢。

为了解决这个问题,Elasticsearch提供了将索引分片的技术,称为shard。当创建一个index,可以指定shard的数量。每个shard内部都是全功能而且相互独立的”index”,可以放在cluster上的任意node上。

Sharding重要的原因:

  • 允许横向扩展容量
  • 分布式并行操作shard(可能在多个node上),因而提高性能

分片是如何分布、文档是如何聚合回搜索结果的机制完全由Elasticsearch管理,对用户透明。

在网络/云环境中,故障是很常见的,比如一个shard/node宕了,因而容错机制非常有效,也是被推荐的。为此,Elasticsearch允许创建index的shard的一个或多个副本,称为replica。

Replication重要的原因:

  • 提供高可用性,以防shard/node失效。注意,一个replica shard绝对不能分配到它原先所在node(即创建副本的原本所在的node)。
  • 允许扩展搜索容量,因为搜索可以并行在所有replica上执行

总结一下,每个index可以被分为多个shard。一个index也可以被复制0份或者多份。一旦复制过,每个index将有主shard(创建副本的原本所在的shard)和replica shard(主shard的副本)。shard和replica的数量可以在index创建的时候自定义。index创建之后,你可以动态改变replica的数量,但是不能改变shard的数量。

默认的,每个index被分配5个主shard和1个replica,这意味着,如果你在cluster中有至少两个节点,每个index将有10个shard,分别是5个主shard和另外5个replica shard(1个完整的replica)。

时间: 2024-10-18 12:38:31

elasticsearch基本概念的相关文章

ElasticSearch 全文检索— ElasticSearch 核心概念

ElasticSearch核心概念-Cluster 1)代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的. 2)主节点的职责是负责管理集群状态,包括管理分片的状态和副本的状态,以及节点的发现和删除. 3)注意:主节点不负责对数据的增删改查请求进行处理,只负责维护集

Elasticsearch入门教程(二):Elasticsearch核心概念

原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79200022 基本概念介绍 Elasticsearch是一个基于Lucene构建的开源.分布式.RESTful的搜索引擎,能够实现近实时(NRT)搜索,稳定.可靠.安装方便.Elasticsearch 不

ElasticSearch 基本概念

Elasticsearch是一个接近实时的搜索平台,就是说从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟,通常是一秒钟 集群 一个集群通常有一个或多个elasticsearch节点组成,给这些节点指定相同的集群名称,从而形成了一个集群. 节点 节点是集群的一部分,参与集群的索引和搜索功能,每个节点也拥有自己的节点名称,一个节点可以通过配置集群名称的方式来加入一个指定的集群 索引 一个索引通常包含很多文档类型,索引的名字必须是完全小写的字母,可以把索引当做关系型数据库里的数据库的概念 在一

lucene和ElasticSearch基本概念

lucene基本概念 索引(Index) 对应一个倒排表,一个检索的基本单位.在lucene中就对应一个目录. lucene基本概念 段(Segment) 一个索引可以包含多个段,段与段之间是独立的,添加新文档可以生成新的段,不同的段可以合并.段是索引数据存储的单元. 文档(Document) ?文档是我们建索引的基本单位,不同的文档是保存在不同的段中的,一个段可以包含多篇文档. ?新添加的文档是单独保存在一个新生成的段中,随着段的合并,不同的文档合并到同一个段中. 域(Field) ?一篇文档

Elasticsearch基本概念及核心配置文件详解

Elasticsearch5.X,下列的是Elasticsearch2.X系类配置,其实很多配置都是相互兼容的 1. 配置文件 config/elasticsearch.yml 主配置文件 config/jvm.options jvm参数配置文件cofnig/log4j2.properties 日志配置文件 2. 基本概念 接近实时(NRT) Elasticsearch 是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是 1 秒). 集群(clus

分布式搜索elasticsearch 基本概念

ElasticSearch官网:http://www.elasticsearch.org/ 先上一张elasticsearch的整体框架图: ElasticSearch是基于Lucene开发的分布式搜索框架,包括例如以下特性: 分布式索引.搜索 索引自己主动分片.负载均衡 自己主动发现机器.组建集群 支持Restful 风格接口 配置简单等. 下图是ElasticSearch的第三方插件管理工具.通过它能够非常清晰的看到它索引分布的情况:哪块分布在那里,占用空间多少都能够看到.而且能够管理索引.

ElasticStack学习(三):ElasticSearch基本概念

1.文档 1)ElasticSearch是面向文档的,文档是所有可搜索数据的最小单位.例如: a)日志文件中的日志项: b)一张唱片的详细信息: c)一篇文章中的具体内容: 2)在ElasticSearch中,文档会被序列化成Json格式: a)Json对象是由字段组成的: b)每个字段都有对应的字段类型(如:字符串.数值.日期类型等): 3)每个文档都有一个唯一的ID(Unique ID) a)可以自己指定此ID: b)也可以通过ElasticSearch自动生成: 4)我们可以将文档理解成关

elasticsearch基础概念

接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒).           集群(cluster)        一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能.一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”.这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群.在产品环境中显式地设定这个名字

Elasticsearch 重要概念小计

核心数据类型 text & keyword Text: 1:支持分词,全文检索,支持模糊.精确查询,不支持聚合,排序操作; 2:test类型的最大支持的字符长度无限制,适合大字段存储: 使用场景: 存储全文搜索数据, 例如: 邮箱内容.地址.代码块.博客文章内容等. 默认结合standard analyzer(标准解析器)对文本进行分词.倒排索引. 默认结合标准分析器进行词命中.词频相关度打分. keyword: 1:不进行分词,直接索引,支持模糊.支持精确匹配,支持聚合.排序操作. 2:key