9 Elasticsearch 数据搜索引擎教程系列之基础概念之文档结构
在上一篇文章中,我们讨论了 索引
和 类型
的基础概念。接下来,我们将深入探讨索引内部的基本组成部分——文档
及其 结构
。理解文档结构对于操作 Elasticsearch 中的数据至关重要,因为文档是数据的基本单元。
文档的概念
在 Elasticsearch 中,文档
是存储在 索引
中的基本数据记录。每个文档都以 JSON 格式存储,并且包含与该条数据相关的字段及其值。文档对应于关系数据库中的“行”。
文档的属性
每个文档都有以下几个关键特性:
- ID:每个文档都有一个唯一的标识符,称为文档 ID。可以由 Elasticsearch 自动生成,或由用户自定义。
- 类型:在早期版本的 Elasticsearch 中,文档类型用于将相似文档分组。然而,随着版本的更新,已被推荐使用单个索引及相同类型的文档。
- 字段:文档由多个
字段
组成,每个字段代表一个数据项。字段具有名称和对应的值,值可以是多种类型,例如字符串、数字、布尔值、数组、对象等。 - 映射:映射是文档字段的结构定义和设置,包括字段类型、分析器等。它定义了如何将数据存储、索引和搜索。
文档结构示例
下面是一个简单的文档示例,假设我们在管理一个图书馆的书籍信息:
1 | { |
在这个示例中,我们的文档包含了五个字段:
title
:书名,字符串类型author
:作者,字符串类型published_year
:出版年份,整数类型genres
:书籍类型,数组类型available
:是否可用,布尔类型
文档与索引的关系
每个文档都必须属于一个索引。在 Elasticsearch 中,一个索引可以包含多个文档,文档之间可以有不同的字段。在创建索引时,可以定义映射,以确保正确存储和检索数据。
例如,创建一个名为 books
的索引,可以定义如下的映射:
1 | PUT /books |
在上面的示例中,我们定义了一个包含 title
, author
, published_year
, genres
, 和 available
字段的 books
索引。这些映射定义了每个字段的数据类型,从而确保 Elasticsearch 以适当的方式处理这些数据。
文档的存储与检索
在 Elasticsearch 中,文档是以 JSON 格式存储在索引中。用户可以通过 RESTful API 发送 HTTP 请求来进行文档的创建、更新、删除和检索操作。
例如,添加一个新的书籍文档,可以使用如下的 HTTP PUT 请求:
1 | PUT /books/_doc/1 |
通过这个请求,我们将一条书籍数据添加到 books
索引中,文档 ID 为 1
。
接下来,我们可以使用 GET 请求检索文档:
1 | GET /books/_doc/1 |
小结
本文介绍了 文档
作为 Elasticsearch 中的数据基本单元,以及其结构和与索引的关系。理解文档结构有助于我们在 Elasticsearch 中更有效地存储和检索数据。接下来的文章,我们将继续深入 Elasticsearch 的操作,探讨如何创建和管理索引及其文档。
9 Elasticsearch 数据搜索引擎教程系列之基础概念之文档结构