Elasticsearch实践(三):Mapping

 版本:Elasticsearch 6.2.4。

Mapping类似于数据库中的表结构定义,主要作用如下:

  • 定义Index下字段名(Field Name)
  • 定义字段的类型,比如数值型,字符串型、布尔型等
  • 定义倒排索引的相关配置,比如是否索引、记录postion等

Mapping完整的内容可以分为四部分内容:

  • 字段类型(Field datatypes)
  • 元字段(Meta-Fields)
  • Mapping参数配置(Mapping parameters)
  • 动态Mapping(Dynamic Mapping)

自动Mapping

如果没有手动设置Mapping,Elasticsearch默认会自动解析出类型,且每个字段以第一次出现的为准。

下面我们先看一下Elasticsearch默认创建的Mapping是什么样的。

首先我们创建一个索引:

PUT /user/

查询索引信息:

GET /user

结果:

{   "user": {     "aliases": {},     "mappings": {},     "settings": {       "index": {         "creation_date": "1540044686190",         "number_of_shards": "5",         "number_of_replicas": "1",         "uuid": "_K5b8w7jRiuthf7QeQZhdw",         "version": {           "created": "5060299"         },         "provided_name": "user"       }     }   } }

增加一条数据:

PUT /user/doc/1 {   "name":"Allen Yer",   "job":"php",   "age":22 }  PUT /user/doc/2 {   "name":"Allen Yer",   "job":0,   "age":22 }

查询数据是否新增成功:

GET /user/doc/_count

结果:

{   "count": 2,   "_shards": {     "total": 5,     "successful": 5,     "skipped": 0,     "failed": 0   } }

count为2,说明新增成功。然后我们查询下 mapping :

{   "user": {     "mappings": {       "doc": {         "properties": {           "age": {             "type": "long"           },           "job": {             "type": "text",             "fields": {               "keyword": {                 "type": "keyword",                 "ignore_above": 256               }             }           },           "name": {             "type": 
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信