御坂主机 发表于 2024-6-8 13:29:16

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

本帖最后由 御坂主机 于 2024-6-8 21:49 编辑

1. 简介

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

1.1 Elasticsearch的基本结构

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

2. 索引

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

2.1 创建索引

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

PUT /my_index

2.2 管理索引

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

DELETE /my_index

3. 类型

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

3.1 类型的演变

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

PUT /my_index/my_type/1
{
"name": "John Doe",
"age": 30
}

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

PUT /my_index/_doc/1
{
"name": "John Doe",
"age": 30
}

4. 文档

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

4.1 添加文档

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

PUT /my_index/_doc/1
{
"name": "John Doe",
"age": 30,
"city": "New York"
}

4.2 检索文档

可以通过ID检索文档:

GET /my_index/_doc/1

4.3 更新文档

可以部分更新文档:

POST /my_index/_update/1
{
"doc": {
    "age": 31
}
}

4.4 删除文档

可以通过ID删除文档:

DELETE /my_index/_doc/1

5. 分片

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

5.1 主分片和副本分片

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

5.2 配置分片

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

PUT /my_index
{
"settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
}
}

5.3 分片的作用

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

6. 副本

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

6.1 配置副本

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

PUT /my_index/_settings
{
"number_of_replicas": 1
}

6.2 副本的作用

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

7. 结论

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





------------------------------------------------------------------------------------------------------------------------------------------
========御 坂 主 机========
>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<
>> 推广/合作/找我玩TG号 : @Misaka_Offical <<
-------------------------------------------------------------------------------------------------------------------------------------------

页: [1]
查看完整版本: Elasticsearch 索引、类型、文档、分片与副本等核心概念介绍