Elasticsearch 中的映射类型与字段数据类型

Elasticsearch 中,映射类型字段数据类型 是核心概念,它们定义了数据在索引中如何被索引存储 和查询。理解这些概念对于我们有效地构建数据模型和优化搜索性能至关重要。

在这篇文章中,我们将学习映射类型、字段数据类型及其在 Elasticsearch 中的重要意义。同时,我们也将通过一些示例来加深理解。

映射类型简介

  • 在早期版本的 Elasticsearch(6.x 版本之前)中,映射类型 是在索引 内组织数据的一种方式。
  • 通过映射类型,我们可以在单个索引 中定义多种类型,每种类型代表不同的实体或文档结构。
  • 映射类型允许我们为索引中的文档定义模式。例如,我们可以在同一个索引中拥有一个“book”(书籍)类型和一个“movie”(电影)类型。
  • 从 Elasticsearch 的后续版本开始,映射类型已被视为过时,并将在未来版本中移除。
  • Elasticsearch 现在建议不再使用映射类型,而是每个索引仅使用单一类型。
  • 摒弃映射类型使得模式设计更加灵活,减少了映射 冲突并提高了效率
  • 在较新版本的 Elasticsearch 中,建议使用不同的索引来代表不同的实体或文档结构。
  • 每个索引可以拥有自己的映射,以定义该索引中文档的模式。

字段数据类型定义了文档中某个字段可以存储的数据类型。Elasticsearch 提供了广泛的数据类型来容纳各种类型的数据包括文本、数字、日期等。让我们探索一下 Elasticsearch 中一些常见的字段数据类型:

1. 文本

  • 它用于全文搜索。文本字段会被分析,这意味着它们会被分解为单独的词项,然后被索引。这允许进行高效的全文搜索,但可能会导致索引大小增加。

2. 关键词

  • 它用于精确匹配。关键词字段不会被分析,而是按原样被索引。它们适用于像ID电子邮件地址枚举 值这样的字段。

3. 整数

  • 它用于数值。Elasticsearch 支持多种数字类型,包括整数、长整型、浮点型和双精度型。数字字段的索引方式支持高效的范围查询聚合

4. 长整型

  • 长整型数据类型与整数类似,但适用于更大 的数字。

5. 日期

  • 它用于日期时间 值。Elasticsearch 可以解析多种日期格式,并支持查询中的日期运算格式化

6. 布尔值

  • 布尔数据类型用于包含 值的字段。

7. 浮点型和双精度型

  • 浮点型双精度型 数据类型用于包含浮点数 的字段。

映射类型与字段定义

让我们创建一个包含各种字段数据类型 映射的简单索引,以了解 Elasticsearch 中的映射和字段数据类型是如何工作的。

PUT /my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "category": {
        "type": "keyword"
      },
      "quantity": {
        "type": "integer"
      },
      "price": {
        "type": "float"
      },
      "is_active": {
        "type": "boolean"
      },
      "created_at": {
        "type": "date"
      }
    }
  }
}

解释

  • 我们创建了一个名为 myindex 的索引,其中包含 title、category、quantity、price、isactive 和 created_at 等字段的映射。
  • 每个字段都被分配了特定的数据类型(text、keyword、integer、float、boolean、date)。

使用字段数据类型索引文档

假设我们需要将一个文档索引到 my_index 索引中,以演示 Elasticsearch 中字段数据类型的应用。

POST /my_index/_doc/1
{
  "title": "Product A",
  "category": "Electronics",
  "quantity": 100,
  "price": 49.99,
  "is_active": true,
  "created_at": "2022-05-01T12:00:00"
}

解释: 在这个示例中,我们使用 INLINECODEffa579ea 请求将一个包含各种字段数据类型的文档索引到 INLINECODE303652f4 索引中。文档中的每个字段都对应于 Elasticsearch 中的特定字段数据类型,例如文本、关键词、整数、浮点数、布尔值 和日期。

获取映射信息

假设我们想要检索 my_index 索引的映射信息,以了解字段数据类型在 Elasticsearch 中是如何映射的。

GET /my_index/_mapping

示例输出:

“`

{

"my_index": {

"mappings": {

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/24377.html
点赞
0.00 平均评分 (0% 分数) - 0