(四)elasticsearch之mapping详解和数据类型

本文详细介绍了Elasticsearch的Mapping概念,包括如何自定义mapping、控制字段动态新增、使用copy_to参数、设置index选项以及处理null值。还讨论了各种数据类型,如text、keyword、数值类型、日期和布尔类型。此外,文章提到了自动识别字段类型、动态模板的使用以及自定义mapping的建议,并简要概述了索引模板的作用。
摘要由CSDN通过智能技术生成

elasticsearch之mapping详解和数据类型

一、mapping介绍

  • 类似数据库中的表结构定义,主要作用如下:
  1. 定义 index 下的字段名(Field name)
  2. 定义字段的类型,比如 数值型,字符串型,布尔型等
  3. 定义倒排索引的相关配置,比如是的索引、是否记录position 等

二、常用mapping 相关api

1、获取索引 mapping

请求:GET XXX-INDEX/_mapping
响应:
{
   
  "test": {
   
    "mappings": {
   
      "doc": {
   
        "properties": {
   
          "id": {
   
            "type": "text",
            "fields": {
   
              "keyword": {
   
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "name": {
   
            "type": "text",
            "fields": {
   
              "keyword": {
   
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

三、自定义mapping

1、dynamic 参数

通过dynamic 参数可以控制字段的新增功能。

  • true(默认)允许自动新增字段
  • false不允许自动新增字段,但是文档可以正常写入,但是无法对字段进行查询等操作
  • strict文档不能写入,插入时会直接报错

如:

1、设置 dynamic 参数
PUT test_index
{
   
    "mappings": {
   
        "doc": {
   
            "dynamic": false,
            "properties": {
   
                "user": {
   
                    "type": "text"
                }
            }
        }
    }
}
2、新增一条数据
PUT test_index/doc/1
{
   
  "user": "qianmeng",
  "age": 18    // 此字段是新增的,此时 dynamic是false,我们验证其可插入但不可查询的功能
}
3、查看mapping
GET test_index/_mapping
结果是:
{
   
  "test_index": {
   
    "mappings": {
   
      "doc": {
   
        "dynamic": "false",
        "properties": {
   
          "user": {
   
            "type": "text"
          }
        }
      }
    }
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值