前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系

正文

为什么要定义 mappings ?

在es当中,每个字段都会有默认的类型,根据我们第一次插入数据进去,es会自动帮我们推断字段的类型,当然我们也可以通过设置mappings来提前自定义我们字段的类型

1、使用mappings来提前定义字段类型

使用mapping的映射管理,提前指定字段的类型,防止后续的程序问题;

DELETE  document
PUT document
{
  "mappings": {
    "article" : {
      "properties":
      {
        "title" : {"type": "text"} , 
        "author" : {"type": "text"} , 
        "titleScore" : {"type": "double"} 
        
      }
    }
  }
}
get document/article/_mapping

2、基本命令

DELETE school
PUT school
{
  "mappings": {
    "logs" : {
      "properties": {"messages" : {"type": "text"}}
    }
  }
}

添加索引:school,文档类型类logs,索引字段为message ,字段的类型为text

GET /school/_mapping/logs

继续添加字段

POST /school/_mapping/logs
{
  "properties": {"number" : {"type": "text"}}
}

GET /school/_mapping/logs

3、获取映射字段

语法:

GET /school/_mapping/logs/field/number

4、管理索引库分片数以及副本数settings

所谓的settings就是用来修改索引分片和副本数的;
比如有的重要索引,副本数很少甚至没有副本,那么我们可以通过setting来添加副本数

DELETE document
PUT document
{
  "mappings": {
    "article" : {
      "properties":
      {
        "title" : {"type": "text"} , 
        "author" : {"type": "text"} , 
        "titleScore" : {"type": "double"} 
        
      }
    }
  }
}

GET /document/_settings

在这里插入图片描述

可以看到当前的副本数是1,那么为了提高容错性,我们可以把副本数改成2:

PUT /document/_settings
{
  "number_of_replicas": 2
}

在这里插入图片描述

副本可以改,分片不能改

PUT /document/_settings
{
  "number_of_shards": 3
}

在这里插入图片描述

上一篇 下一篇