9 Elasticsearch 数据搜索引擎教程系列之基础概念之文档结构

在上一篇文章中,我们讨论了 索引类型 的基础概念。接下来,我们将深入探讨索引内部的基本组成部分——文档 及其 结构。理解文档结构对于操作 Elasticsearch 中的数据至关重要,因为文档是数据的基本单元。

文档的概念

在 Elasticsearch 中,文档 是存储在 索引 中的基本数据记录。每个文档都以 JSON 格式存储,并且包含与该条数据相关的字段及其值。文档对应于关系数据库中的“行”。

文档的属性

每个文档都有以下几个关键特性:

  • ID:每个文档都有一个唯一的标识符,称为文档 ID。可以由 Elasticsearch 自动生成,或由用户自定义。
  • 类型:在早期版本的 Elasticsearch 中,文档类型用于将相似文档分组。然而,随着版本的更新,已被推荐使用单个索引及相同类型的文档。
  • 字段:文档由多个 字段 组成,每个字段代表一个数据项。字段具有名称和对应的值,值可以是多种类型,例如字符串、数字、布尔值、数组、对象等。
  • 映射:映射是文档字段的结构定义和设置,包括字段类型、分析器等。它定义了如何将数据存储、索引和搜索。

文档结构示例

下面是一个简单的文档示例,假设我们在管理一个图书馆的书籍信息:

1
2
3
4
5
6
7
{
"title": "Elasticsearch: The Definitive Guide",
"author": "Clinton Gormley",
"published_year": 2015,
"genres": ["Technology", "Programming"],
"available": true
}

在这个示例中,我们的文档包含了五个字段:

  • title:书名,字符串类型
  • author:作者,字符串类型
  • published_year:出版年份,整数类型
  • genres:书籍类型,数组类型
  • available:是否可用,布尔类型

文档与索引的关系

每个文档都必须属于一个索引。在 Elasticsearch 中,一个索引可以包含多个文档,文档之间可以有不同的字段。在创建索引时,可以定义映射,以确保正确存储和检索数据。

例如,创建一个名为 books 的索引,可以定义如下的映射:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
PUT /books
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"author": {
"type": "text"
},
"published_year": {
"type": "integer"
},
"genres": {
"type": "keyword"
},
"available": {
"type": "boolean"
}
}
}
}

在上面的示例中,我们定义了一个包含 title, author, published_year, genres, 和 available 字段的 books 索引。这些映射定义了每个字段的数据类型,从而确保 Elasticsearch 以适当的方式处理这些数据。

文档的存储与检索

在 Elasticsearch 中,文档是以 JSON 格式存储在索引中。用户可以通过 RESTful API 发送 HTTP 请求来进行文档的创建、更新、删除和检索操作。

例如,添加一个新的书籍文档,可以使用如下的 HTTP PUT 请求:

1
2
3
4
5
6
7
8
PUT /books/_doc/1
{
"title": "Elasticsearch: The Definitive Guide",
"author": "Clinton Gormley",
"published_year": 2015,
"genres": ["Technology", "Programming"],
"available": true
}

通过这个请求,我们将一条书籍数据添加到 books 索引中,文档 ID 为 1

接下来,我们可以使用 GET 请求检索文档:

1
GET /books/_doc/1

小结

本文介绍了 文档 作为 Elasticsearch 中的数据基本单元,以及其结构和与索引的关系。理解文档结构有助于我们在 Elasticsearch 中更有效地存储和检索数据。接下来的文章,我们将继续深入 Elasticsearch 的操作,探讨如何创建和管理索引及其文档。

9 Elasticsearch 数据搜索引擎教程系列之基础概念之文档结构

https://zglg.work/elasticsearch-zero/9/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

学习下节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论