侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

elasticsearch基本概念

2023-11-28 星期二 / 0 评论 / 0 点赞 / 42 阅读 / 5985 字

基本概念 elasticsearch有几个核心概念。一开始就能理解这些概念对后面的学习会有极大的帮助。 近实时(NRT) Elasticsearch是一个近乎实时的检所平台。意味着从索引一个文档(do

基本概念

elasticsearch有几个核心概念。一开始就能理解这些概念对后面的学习会有极大的帮助。

近实时(NRT)

Elasticsearch是一个近乎实时的检所平台。意味着从索引一个文档(document)到该文档可以被检索之前会稍有延迟。

集群

集群指一个或多个节点的集合,它们可以承载全部数据并提供跨所有节点的联合索引和检索。集群名称由统一的名称来标识,默认集群名称为elasticsearch。这个名称很重要,因为节点加入集群,只通过集群名称进行识别。

确保在不同的环境中使用了不同的集群名称,否则会出现节点加错集群的情况。例如你可以用 logging-devlogging-stage, 和 logging-prod 来区别development、staging和production集群。此外,你可以用各自唯一的集群名称来建立多个互相独立的集群。

集群内只有单个节点也是可以的。

节点

节点是集群内的独立server,用来存储数据,在集群内参与索引和检索。和集群类似,一个节点(node)根据节点名称进行区分,节点名称即在启动时分配的一个随机的UUID。如果不想使用默认的,可以定义节点名称。从管理角度来看,该名称很重要。

一个节点可以通过配置(配置文件中的)集群名称来加入特定集群。默认,每个节点都加入一个名叫elasticsearch的集群,这意味着如果在网络中开启了几个节点(假设他们可以发现彼此),它们会自动通知并且加入一个叫elasticsearch的集群。

在单个集群中,节点可以任意多。另外,如果没有节点运行elasticsearch,此次开启一个es节点会形成一个新的单节点集群,该集群名叫elasticsearch。

索引

索引是具有相似特点的文档(documents)的集合。例如,你可以为用户数据创建一个索引,为产品目录创建一个索引,为订单数据创建另一个索引。索引通过索引名称(必须都是小写字符)来进行区分,当进行索引、检索、更新和删除文档时,涉及到索引名称。

在集群中,你可以定义任意多的索引。

样式

在一个索引中,你可以定义一种或多种样式。一种样式是索引的逻辑分类、分割。通常,具有共有字段的一组文档定义为一个类型。例如,假设你运行一个博客平台,将所有数据存储为一个索引。在这个索引中,你可以给用户数据定义一个样式,可以为博客数据定义一个样式,可以为评论数据定义一个样式。

文档

文档是可以索引的基本信息单元。例如,如果你可以为一个客户创建一个文档,为一个产品创建一个文档,为一个订单创建一个索引。文档以json格式呈现,一种无处不在的互联网数据交换格式。

在一个索引/样式中,你可以存储任意多的文档。注意虽然文档存在于索引中,它必须被索引/分配到索引内的一种样式中。

 

分片和副本

一个索引可以存储超出单个节点硬件限制的数据。例如,占用了1TB硬件空间的十亿条文档的索引可能并不适合放在一个节点上,或者会出现检索请求过慢的问题。

为了解决这个问题,Elasticsearch提供了分片,它可以将一个索引划分为多片。当你创建了一个索引,你可以定义你期望的分片数量。每一片都是全功能独立的索引,它可以放在集群内的任意一个节点上。

分片的重要性体现在两个主要的原因上:

  • 它允许你水平分割内容卷组
  • 你可以分布式地并行地执行操作,增加了性能和吞吐量

分片如何分布,检索如何聚合文档等这些机制都完全由Elasticsearch管理,对于用户是透明的。

在网络/云环境中,失败无处不在,非常有必要建立一套容错机制,以防出现分片/节点下线或者丢失。为此,Elasticsearch允许用户为索引的多个分片创建一份或多份副本,交错分片副本集,或简称副本。

副本的重要性体现在以下两点:

  • 在分片、节点失效时提供高可用。因此一个分片副本集永远不要位于同一个节点
  • 可以扩展检索卷/吞吐量,因为检索操作可以并行在所有的副本上同时执行

总而言之,每个索引可以分成多片。一个索引可以复制零次(即没有副本)或多次。一旦建立副本,每个索引都会具有主分片(可以用来进行复制副本的分片)和副本分片(主分片的复制)。在索引一创建时可以指定每个索引的分片个数和副本个数。索引创建好后,你可以动态改变副本的数量,但不能改变分片的数量。

默认情况下,Elasticsearch每个索引有5个主分片和一个副本集,意味着如果集群中有两个节点,你的索引会有5个主分片和5个副本分片,每个索引总共是10个分片。

 

每个Elasticsearch分片是一个Lucence索引。在单个Lucence索引中有文档数存在上限。根据LUCENE-5843

,限制为2,147,483,519个文档。你可以使用api_cat/shards检测分片大小。

 

 

https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html#getting-started-shards-and-replicas

广告 广告

评论区