返回

Elasticsearch之mapping之创建类型

闲谈


在之前的文章中,我们介绍了如何创建索引,如何添加文档,如何删除索引等。那么在本文中,我们将继续学习Elasticsearch中的另一个重要概念——mapping,以及如何创建类型。

1. 什么是mapping?

mapping是Elasticsearch中的一种数据结构,它定义了索引中字段的类型、格式和分析器。当您创建索引时,必须指定mapping,以便Elasticsearch知道如何存储和检索数据。

2. 如何创建mapping?

有两种方法可以创建mapping:

  • 在创建索引时指定mapping。
  • 使用PUT API创建mapping。

在创建索引时指定mapping的语法如下:

PUT /index_name
{
  "mappings": {
    "type_name": {
      "properties": {
        "field_name": {
          "type": "data_type"
        }
      }
    }
  }
}

其中:

  • index_name是要创建的索引的名称。
  • type_name是要创建的类型的名称。
  • properties是要定义的字段的集合。
  • field_name是要定义的字段的名称。
  • data_type是要定义的字段的数据类型。

3. mapping的常见数据类型

Elasticsearch支持多种数据类型,包括:

  • text:用于存储文本数据。
  • keyword:用于存储不分词的文本数据。
  • long:用于存储长整型数据。
  • integer:用于存储整型数据。
  • short:用于存储短整型数据。
  • byte:用于存储字节数据。
  • double:用于存储双精度浮点数数据。
  • float:用于存储单精度浮点数数据。
  • boolean:用于存储布尔值。
  • date:用于存储日期数据。

4. mapping的常见分析器

Elasticsearch支持多种分析器,包括:

  • standard:标准分析器,将文本数据转换为小写,并删除标点符号和空格。
  • keyword:分析器,不分词文本数据。
  • stop:停用词分析器,将停用词从文本数据中删除。
  • stemmer:词干分析器,将词根从文本数据中提取出来。
  • nGram:N-Gram分析器,将文本数据转换为N-Gram。

5. 创建类型

在Elasticsearch中,一个索引可以包含多个类型。类型是索引的逻辑分区,可以用于存储不同类型的数据。

要创建类型,可以使用PUT API。语法如下:

PUT /index_name/_mapping/type_name
{
  "properties": {
    "field_name": {
      "type": "data_type"
    }
  }
}

其中:

  • index_name是要创建类型的索引的名称。
  • type_name是要创建的类型的名称。
  • properties是要定义的字段的集合。
  • field_name是要定义的字段的名称。
  • data_type是要定义的字段的数据类型。

6. 总结

在本文中,我们介绍了Elasticsearch中的mapping是什么,如何创建mapping,以及mapping的常见数据类型和分析器。我们还介绍了如何在Elasticsearch中创建类型。希望这些知识能够帮助您更好地使用Elasticsearch。