找回密码
 立即注册
查看: 365|回复: 0

[linux] Elasticsearch 索引、类型、文档、分片与副本等核心概念介绍

[复制链接]

224

主题

0

回帖

773

积分

高级会员

积分
773
发表于 2024-6-8 13:29:16 | 显示全部楼层 |阅读模式
本帖最后由 御坂主机 于 2024-6-8 21:49 编辑

1. 简介

Elasticsearch是一种分布式搜索和分析引擎,广泛应用于实时全文搜索、日志和分析等领域。为了充分利用Elasticsearch,我们需要理解其核心概念,包括索引、类型、文档、分片和副本。本文将详细介绍这些概念,帮助读者更好地理解和使用Elasticsearch。

1.1 Elasticsearch的基本结构

Elasticsearch基于Apache Lucene构建,提供了一个分布式、多租户能力的全文搜索引擎。它使用RESTful API进行交互,并能够处理大规模的数据查询和分析。

2. 索引

在Elasticsearch中,索引是存储、管理和查询数据的基本单元。它类似于关系型数据库中的数据库。

2.1 创建索引

可以通过以下命令创建一个名为“my_index”的索引:

  1. PUT /my_index
复制代码


2.2 管理索引

可以查看索引的状态和配置,更新设置或删除索引。以下命令删除名为“my_index”的索引:

  1. DELETE /my_index
复制代码


3. 类型

在Elasticsearch 7.x及以上版本中,类型(Type)已经被逐步弃用。在早期版本中,类型类似于关系型数据库中的表,用于区分不同类别的文档。

3.1 类型的演变

在早期版本中,可以为索引定义多个类型:

  1. PUT /my_index/my_type/1
  2. {
  3.   "name": "John Doe",
  4.   "age": 30
  5. }
复制代码


在最新版本中,建议在每个索引中只使用一个类型,即_doc:

  1. PUT /my_index/_doc/1
  2. {
  3.   "name": "John Doe",
  4.   "age": 30
  5. }
复制代码


4. 文档

文档是Elasticsearch中最基本的数据单元,类似于关系型数据库中的行。每个文档都有一个唯一的ID和一个JSON格式的主体。

4.1 添加文档

以下命令向名为“my_index”的索引中添加一个文档:

  1. PUT /my_index/_doc/1
  2. {
  3.   "name": "John Doe",
  4.   "age": 30,
  5.   "city": "New York"
  6. }
复制代码


4.2 检索文档

可以通过ID检索文档:

  1. GET /my_index/_doc/1
复制代码


4.3 更新文档

可以部分更新文档:

  1. POST /my_index/_update/1
  2. {
  3.   "doc": {
  4.     "age": 31
  5.   }
  6. }
复制代码


4.4 删除文档

可以通过ID删除文档:

  1. DELETE /my_index/_doc/1
复制代码


5. 分片

分片(Shard)是Elasticsearch中数据存储和处理的基本单位。每个索引可以拆分为多个分片,以便分布在多个节点上,提升性能和可扩展性。

5.1 主分片和副本分片

每个索引由多个主分片(Primary Shard)和副本分片(Replica Shard)组成。主分片存储原始数据,副本分片是主分片的拷贝,用于容错和负载均衡。

5.2 配置分片

在创建索引时,可以指定主分片和副本分片的数量:

  1. PUT /my_index
  2. {
  3.   "settings": {
  4.     "number_of_shards": 3,
  5.     "number_of_replicas": 2
  6.   }
  7. }
复制代码


5.3 分片的作用

(1) 提高查询性能:查询可以并行执行,提高处理速度。
(2) 提供数据冗余:副本分片确保数据的高可用性,即使主分片发生故障,也可以从副本分片中恢复数据。

6. 副本

副本分片是主分片的拷贝,用于提供高可用性和容错能力。

6.1 配置副本

在创建索引时,可以指定副本分片的数量。副本分片的数量可以在索引创建后动态调整:

  1. PUT /my_index/_settings
  2. {
  3.   "number_of_replicas": 1
  4. }
复制代码


6.2 副本的作用

(1) 容错能力:副本分片在主分片发生故障时提供数据恢复。
(2) 负载均衡:查询可以在主分片和副本分片上并行执行,提高查询性能。

7. 结论

通过本文的介绍,我们了解了Elasticsearch中的一些核心概念,包括索引、类型、文档、分片和副本。这些概念是使用Elasticsearch进行数据存储、管理和查询的基础。理解这些概念,有助于更好地设计和优化Elasticsearch集群,提升数据处理和查询的效率。





------------------------------------------------------------------------------------------------------------------------------------------

========  御 坂 主 机  ========

>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<

>> 推广/合作/找我玩  TG号 : @Misaka_Offical <<

-------------------------------------------------------------------------------------------------------------------------------------------


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-5 02:29 , Processed in 0.058643 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表