Elasticsearch 之 Mapping

本文介绍了Elasticsearch的Mapping概念,它用于定义存储结构和索引过程。讨论了Mapping-Type的变化,7.0开始默认为_doc。解释了动态Mapping机制,当索引不存在或mapping为空时,ES会自动推断字段类型。此外,文章提到了Dynamic Mapping的三种模式:True、False和Strict,并强调了字段类型一旦确定,后续无法修改,需要通过Reindex来变更。
摘要由CSDN通过智能技术生成

Elasticsearch 之 Mapping

什么是mapping

  • Mapping 用来定义存储结构及索引过程,类似关系型数据中的schema 定义
    • 定义索引中的字段名称
    • 定义字段的数据类型
    • 定义字段、倒排索引的相关配置

Mapping-Type

  • mapping对应索引中的一个Type
    • 一个type有一个mapping定义
    • ES 7.0 开始,不需要在Mapping 定义中指定type信息,type默认为_doc

字段的数据类型

在这里插入图片描述

创建索引

# 执行以下语句创建一个索引
PUT t_student
# 执行结果
{
   
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "t_student"
}

此时索引已经创建成功了,我们看一下索引的mapping结构

# 执行以下语句查询mapping结构
GET t_student/_mapping
# 执行结果
{
   
  "t_student" : {
   
    "mappings" : {
    }
  }
}

我们发现这时的mapping是空的,这时我们往里写下数据:

# 写数据
PUT t_student/_doc/1
{
   
  "name":"zhangsan"
}
# 执行结果
{
   
  "_index" : "t_student",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
   
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
# 查询数据
GET t_student/_search
# 查询结果
{
   
  "took" : 2,
  "timed_out" : false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值