ES[7.6.x\]学习笔记(四)字段类型(mapping)

在上一节中,咱们建立了索引,在建立索引的时候,咱们指定了mapping属性,mapping属性中规定索引中有哪些字段,字段的类型是什么。在mapping中,咱们能够定义以下内容:java

  • 类型为String的字段,将会被全文索引;shell

  • 其余的字段类型包括:数字、日期和geo(地理坐标);json

  • 日期类型的格式;数组

  • 动态添加字段的映射规则;微信

字段的可用类型以下:app

  • 简单的类型,好比:text,keyword,date,long,double,boolean,ip。咱们能够看到,类型当中没有String,字符串的类型是text,全部text类型的字段都会被全文索引。数字类型有两个,long(长整型)和double(浮点型)。ide

  • JSON的层级类型:Object(对象)和Nested(数组对象)。Object类型时,该字段能够存储一个JSON对象;Nested类型时,该字段能够存储一个数组对象。spa

  • 复杂的类型:包括 geo_point、geo_shape和completion。.net

在索引中建立映射

咱们在建立索引的时候能够同时建立映射,就如同上一节的内容。也能够在索引建立好之后,再去建立映射,请求的方式以下:code

PUT /my-index
{
 "mappings": {
   "properties": {
     "age":   { "type": "integer" },  
     "email": { "type": "keyword" },
     "name":   { "type": "text" }    
  }
}
}

请求的方法咱们要使用PUT,路径是咱们的索引名称,请求体当中是咱们为索引添加的字段和字段的类型。

在存在的映射中添加字段

正如上面所示,咱们在一个索引中添加了字段,可是如今咱们要补充额外的字段,这时,咱们要怎么作呢?

PUT /my-index/_mapping
{
 "properties": {
   "employee-id": {
     "type": "keyword",
     "index": false
  }
}
}

咱们使用PUT方法,后面跟随咱们的索引名称,再接上_mapping,请求体中是咱们新添加的映射字段,咱们指定了字段的类型为keywordindex索引为false,说明这个字段只用于存储,不会用于搜索,搜索这个字段是搜索不到的。

咱们在更新字段时候,是不能修改字段的类型的。若是咱们要修改字段的类型,最好是新建一个新的字段,指定正确的类型,而后再更新索引,之后咱们只须要查询这个新增的字段就能够了。

查看索引中的字段映射

若是咱们要查看已知索引的字段映射,能够向ES发送以下的请求:

GET /my-index/_mapping

请求的方法是GET,请求的路径是咱们索引的名称my-index,再加上一个_mapping,获得的返回结果以下:

{
 "my-index" : {
   "mappings" : {
     "properties" : {
       "age" : {
         "type" : "integer"
      },
       "email" : {
         "type" : "keyword"
      },
       "employee-id" : {
         "type" : "keyword",
         "index" : false
      },
       "name" : {
         "type" : "text"
      }
    }
  }
}
}

返回的结果中,咱们能够看到索引的名称my-index,还有咱们添加的字段,也包括后续补充的employee-id字段。

好了,关于索引的字段映射就先给你们介绍到这里。


本文分享自微信公众号 - 牛初九(tech-java)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索