Elasticsearch 的核心概念有哪些?

推荐答案

Elasticsearch 的核心概念包括:

  1. 索引(Index):类似于关系型数据库中的“数据库”,用于存储相关文档的集合。
  2. 类型(Type):在 Elasticsearch 6.x 及之前版本中,类型用于区分索引中的不同文档结构,但在 7.x 及之后版本中已被弃用。
  3. 文档(Document):索引中的基本数据单元,类似于关系型数据库中的“行”。
  4. 分片(Shard):索引可以被分成多个分片,每个分片是一个独立的索引,用于分布式存储和查询。
  5. 副本(Replica):分片的副本,用于提高数据的可用性和查询性能。
  6. 节点(Node):Elasticsearch 集群中的一个服务器实例,负责存储数据和执行操作。
  7. 集群(Cluster):由一个或多个节点组成的集合,共同存储数据和提供服务。
  8. 映射(Mapping):定义索引中的文档及其字段的存储和索引方式。
  9. 分析器(Analyzer):用于在索引和搜索时处理文本数据,包括分词、过滤等操作。
  10. 查询(Query):用于从索引中检索数据的请求。
  11. 聚合(Aggregation):用于对索引中的数据进行统计和分析。

本题详细解读

索引(Index)

索引是 Elasticsearch 中最高层次的数据组织单位,类似于关系型数据库中的“数据库”。一个索引可以包含多个文档,这些文档通常具有相似的结构。索引的名称必须是小写的,并且在集群中唯一。

类型(Type)

在 Elasticsearch 6.x 及之前版本中,类型用于区分索引中的不同文档结构。例如,一个索引可以包含“用户”类型和“产品”类型的文档。然而,从 Elasticsearch 7.x 开始,类型已被弃用,推荐每个索引只包含一种类型的文档。

文档(Document)

文档是 Elasticsearch 中的基本数据单元,类似于关系型数据库中的“行”。每个文档是一个 JSON 对象,包含多个字段。文档必须属于某个索引,并且可以通过唯一的 ID 进行标识。

分片(Shard)

分片是 Elasticsearch 实现分布式存储和查询的基础。一个索引可以被分成多个分片,每个分片是一个独立的索引。分片可以分布在集群中的不同节点上,从而提高数据的存储和查询性能。

副本(Replica)

副本是分片的复制品,用于提高数据的可用性和查询性能。每个分片可以有多个副本,副本可以分布在不同的节点上。当某个节点发生故障时,副本可以确保数据不会丢失,并且查询请求可以被重定向到其他副本。

节点(Node)

节点是 Elasticsearch 集群中的一个服务器实例,负责存储数据和执行操作。每个节点都有一个唯一的名称,并且可以承担不同的角色,如主节点、数据节点、协调节点等。

集群(Cluster)

集群是由一个或多个节点组成的集合,共同存储数据和提供服务。集群中的节点通过相互通信来协调数据存储和查询操作。集群的名称必须在所有节点中保持一致。

映射(Mapping)

映射定义了索引中的文档及其字段的存储和索引方式。映射可以指定字段的数据类型、是否索引、是否存储等属性。Elasticsearch 支持动态映射,即在插入文档时自动推断字段的类型和属性。

分析器(Analyzer)

分析器用于在索引和搜索时处理文本数据。分析器通常包括三个部分:字符过滤器、分词器和标记过滤器。字符过滤器用于预处理文本,分词器用于将文本分割成词条,标记过滤器用于对词条进行进一步处理,如小写转换、去除停用词等。

查询(Query)

查询是用于从索引中检索数据的请求。Elasticsearch 支持多种查询类型,如全文查询、词条查询、范围查询等。查询可以组合使用,以实现复杂的搜索需求。

聚合(Aggregation)

聚合用于对索引中的数据进行统计和分析。Elasticsearch 支持多种聚合类型,如指标聚合、桶聚合、管道聚合等。聚合可以嵌套使用,以实现多层次的数据分析。

纠错
反馈