返回

嘴对嘴系列之es核心基础概念之文档和索引

后端


Elasticsearch (ES) 作为一个分布式搜索引擎,其内部组成由很多概念组成,其中文档和索引就是两个至关重要的基本概念。文档本质上是数据存储的基本单位,它是某个实体的内容。相比之下,索引则是对文档进行组织和管理的方式,它通过创建特定数据结构的方式,使文档变得可以被快速搜索和检索。

让我们用一个简单的例子来帮助你理解索引和文档之间的关系。想象你拥有一本实体书,这本书就是索引。书中的每一页就是文档,而每一页上的文字就是文档的内容。当你想在书中查找某个信息时,你首先需要找到正确的页面(文档),然后再在该页面上找到你想要的内容(内容)。索引和文档之间的关系就是这样,索引将文档组织起来,以便你能够更快地找到你需要的内容。

作为ES的核心概念之一,文档包含如下关键属性:

  • 文档ID (Doc ID): 文档的唯一标识符,由ES自动生成,是一个36位的base62编码字符串。
  • 字段 (Field): 文档中包含的数据项,可以是数字、文本、布尔值或其他类型。
  • 值 (Value): 字段的值,可以是单个值或数组。
  • 类型 (Type): 文档的类型,可以用于对文档进行分类和分组。
  • _id (Source): 文档的原始JSON数据,包括文档中包含的所有字段和值。

索引,作为ES中的另一个核心概念,具有以下属性:

  • 索引名称 (Index Name): 索引的唯一标识符,由用户定义,由小写字母和数字组成。
  • 文档类型 (Document Type): 索引中文档的类型,可以用于对文档进行分类和分组。
  • 分片 (Shards): 索引中的数据分区,可以将数据分散到多个节点上,以提高性能和可靠性。
  • 副本 (Replicas): 索引中每个分片的副本,用于提高数据冗余性和可用性。

现在我们已经了解了文档和索引的基本概念,让我们再来看一下它们之间的关系。每个文档都必须属于一个索引,而一个索引可以包含多个文档。当你想在ES中存储数据时,你需要先创建一个索引,然后将文档添加到索引中。索引和文档的关系如下图所示:

+--------------+       +--------------+
|              |       |              |
|      Index   |       |     Document  |
|              |       |              |
+--------------+       +--------------+

以上就是对文档和索引的基本介绍,希望能够帮助你更好地理解ES的基本概念。