郭震 AI公众号:郭震AI

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

发布日期:

分类: Elasticsearch

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点6 个
图文要点0 张
正文规模1.3k 字

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

文档的概念

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

文档的属性

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

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

文档结构示例

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

{
  "title": "Elasticsearch: The Definitive Guide",
  "author": "Clinton Gormley",
  "published_year": 2015,
  "genres": ["Technology", "Programming"],
  "available": true
}

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

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

文档与索引的关系

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

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

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 请求:

PUT /books/_doc/1
{
  "title": "Elasticsearch: The Definitive Guide",
  "author": "Clinton Gormley",
  "published_year": 2015,
  "genres": ["Technology", "Programming"],
  "available": true
}

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

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

GET /books/_doc/1

小结

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

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关内容

更多相关文章

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...