在ElasticSearch中什么是mapping,自定义一个索引的mapping

1.在ElasticSearch中什么是mapping,mapping是干嘛的?
  • Mapping 类似数据库中的schema的定义,作用如下

    1. 定义索引中的字段的名称

    2. 定义字段的数据类型, 例如字符串,数字,布.....


      字段类型
    3. 字段,倒排索引的相关配置,(Analyzed or Not Analyzed,Analyzer)

  • Mapping会把JSON文档映射成Lucene所需要的扁平格式

  • 一个Mapping属于一个索引的Type

    1. 每个文档都属于一一个Type

    2. 一个 Type有一个Mapping定义

    3. 7.0开始,不需要在Mapping定义中指定type信息

dynamic属性 true false strict
文档可被索引 YES YES NO
字段可索引 YES NO NO
mapping可更新 YES NO NO
2.自定义一个索引的mapping
创建索引.png

PUT xianglin_member
{
  "mappings": {
    "properties": {
      "first_name":{
        "type":"keyword"
      },
      "last_name":{
        "type":"keyword",
        "index": false
      },
      "age":{
        "type":"keyword",
        "null_value": "NULL"
      }
    },
    "dynamic":true
  }
}

执行结果.png
  • 修改索引的dynamic属性
    修改索引的dynamic属性.png

执行GET xianglin_member/_mapping可以看到结果、dynamic的值是被改了的

mapping.png

  • 为已存在的es索引新增字段 u_id

PUT xianglin_member/_mapping
{
  "properties": {
      "u_id":{
        "type":"integer",
        "index":true
      }
  }
}

update_mapping.png

你可能感兴趣的:(在ElasticSearch中什么是mapping,自定义一个索引的mapping)