第2课_elasticsearch基本概念
热度🔥:60 免费课程
授课语音
Elasticsearch 的基本概念
Elasticsearch 是一个基于 Apache Lucene 的分布式搜索和分析引擎,通常用于全文搜索、日志分析、实时数据处理等场景。以下是一些 Elasticsearch 的核心概念:
1. 集群(Cluster)
- 集群 是由多个 节点(Node)组成的集合,节点在集群中相互协作处理数据和查询请求。一个集群只有一个名称,用于区分不同的集群。
- 集群中的所有节点会自动发现彼此并进行连接,确保数据的分配和高可用性。
2. 节点(Node)
- 节点 是一个运行 Elasticsearch 的服务器实例。每个节点都有一个唯一的名称。
- 节点的类型决定了它在集群中的角色,常见的节点类型包括:
- 主节点(Master Node): 负责管理集群状态,包括索引的创建、删除,分片的分配等任务。
- 数据节点(Data Node): 存储数据并执行搜索、聚合等查询操作。
- 协调节点(Coordinating Node): 负责处理来自客户端的请求,协调各个节点之间的查询,最后将查询结果返回给客户端。
- 机器学习节点(Machine Learning Node): 用于执行机器学习相关的任务(如果启用此功能)。
3. 索引(Index)
- 索引 是 Elasticsearch 用来组织和存储数据的基本单元,相当于数据库中的“表”。
- 每个索引包含多个 文档,并且索引内的文档具有相同的结构。
- 一个集群可以包含多个索引,通常根据数据的业务需求来创建不同的索引。
4. 文档(Document)
- 文档 是索引中的一个基本数据单元,相当于数据库中的一行数据。
- 每个文档都有一个唯一的标识符(ID)和与之关联的数据字段。
- 文档的数据通常以 JSON 格式存储。
5. 字段(Field)
- 字段 是文档中的一个属性,类似于数据库表中的列。
- 每个字段都有一个 字段名称 和对应的数据类型(如字符串、数字、日期等)。
- 字段值可以进行搜索、排序、聚合等操作。
6. 分片(Shard)和副本(Replica)
分片(Shard) 是索引的物理分割单元,一个索引可以被分为多个分片。每个分片是一个独立的搜索单元,可以分布在不同的节点上,提供更高的查询和存储性能。
- 每个索引默认有 5 个主分片。
副本(Replica) 是分片的副本,用于提高数据的可用性和查询性能。副本的数量是可以配置的。
- 副本不仅用作数据的冗余备份,还能分担读取请求,提高查询吞吐量。
7. 类型(Type)
- 类型 是 Elasticsearch 早期版本中的概念,用于将同一个索引下的数据分类。在较新的版本中,Elasticsearch 推荐使用单一类型("_doc"),并逐步废弃多类型索引的做法。
8. 倒排索引(Inverted Index)
- 倒排索引 是 Elasticsearch 核心的索引结构,它将文档中的每个词条(token)与包含该词条的文档 ID 建立索引。
- 通过倒排索引,Elasticsearch 可以非常高效地进行全文检索,快速定位包含某个关键词的文档。
9. 映射(Mapping)
- 映射 是 Elasticsearch 中定义文档结构的方式,相当于数据库中的表结构定义。
- 映射指定了索引中的字段类型、分析器、字段是否可索引等属性。通过映射,Elasticsearch 可以正确地处理数据并为每个字段设置合适的查询方式。
10. 查询(Query)和聚合(Aggregation)
查询(Query): 用于检索文档的操作,可以基于各种条件如关键词、范围、匹配等进行查询。
- 查询分为:精确查询(Term Query)、全文查询(Match Query)、范围查询(Range Query) 等多种类型。
聚合(Aggregation): 用于对数据进行分析和汇总,例如计算平均值、最大值、最小值、分组等。聚合非常适合用来进行数据分析和生成报告。
11. Elasticsearch REST API
- Elasticsearch 提供了丰富的 RESTful API,用于与 Elasticsearch 集群进行交互。
- 常用的 REST API 操作包括:
GET /_search
:执行查询。POST /index_name/_doc
:添加或更新文档。DELETE /index_name
:删除索引。PUT /index_name
:创建索引。
12. Kibana
- Kibana 是一个与 Elasticsearch 配合使用的可视化工具,可以帮助用户通过图形界面浏览、分析和可视化存储在 Elasticsearch 中的数据。
- Kibana 提供了仪表盘、搜索和报告功能,广泛用于日志分析、监控和数据可视化等场景。
小结
- Elasticsearch 是一个强大的分布式搜索引擎,核心概念包括集群、节点、索引、文档、分片、副本等。
- 它的查询性能得益于倒排索引结构,支持全文搜索和实时数据处理。
- 配合 Kibana 等工具,Elasticsearch 可广泛用于数据搜索、日志分析和实时监控等场景。
这些基本概念是理解和使用 Elasticsearch 的基础,掌握它们可以帮助你更好地进行数据存储、查询和分析。