elasticsearch6实战教程学习笔记(七)-- dynamic mapping策略


笔记来源 → B站学习视频:最新ElasticSearch6实战教程。 

v+数字是视频序号,内容根据我的理解微调了。

上篇介绍排序和一些简单的原理:elasticsearch6实战教程学习笔记(六)-- 排序及原理

本篇内容:dynamic mapping策略。

目录

dynamic mapping策略

(1)dynamic:

(2)date_detection:

(3)定制dynamic mapping template(type)


dynamic mapping策略

(1)dynamic:

   ① true :遇到陌生字段就 dynamic mapping。

   ② false :遇到陌生字段就忽略。

   ③ strict :遇到陌生字段就报错。

PUT /mauanx3 // 创建索引mauanx3、type为user
{
  "settings":{
    "number_of_shards":5, // 5个分片
    "number_of_replicas":1 // 1个副本
  },
  "mappings":{
      "user":{
      "dynamic":"strict", // 出现name、age、characters之外的字段会报错。
      "properties":{
        "name": {
          "type": "text"
        },
        "characters":{
           "type": "object", // object类型
           "dynamic":true // object内出现陌生字段就 dynamic mapping。
        }
      }
    }
  }
}

添加数据:

POST /mauanx3/user/_bulk
{"create":{"_index":"mauanx3","_type":"user","_id":1}}
{"name":"Abbey","characters":{"age":20,"sex":"female"}}
{"create":{"_index":"mauanx3","_type":"user","_id":2}}
{"name":"Barbara","characters":{"age":21,"sex":"female"}}
{"create":{"_index":"mauanx3","_type":"user","_id":3}}
{"name":"Cindy","characters":{"age":22,"sex":"female"}}
{"create":{"_index":"mauanx3","_type":"user","_id":4}}
{"name":"Daisy","characters":{"age":19,"sex":"female"}}
{"create":{"_index":"mauanx3","_type":"user","_id":5}}
{"name":"Ella","characters":{"age":20,"sex":"female"}}
{"create":{"_index":"mauanx3","_type":"user","_id":6}}
{"name":"Fitch","characters":{"age":20,"sex":"male"}}

这样修改/添加会报错。(POST/PUT都可以,后同,区别见前面。推荐使用POST。)

POST /mauanx3/user/1
{
  "name":"Abbey",
  "age":22,
  "characters":{
    "sex":"female"
  }
}

这样修改/添加不会报错。

POST /mauanx3/user/1
{
  "name":"Abbey",
  "characters":{
    "age":22,
    "sex":"female"
  }
}

(2)date_detection:

默认开启。开启时,xxxx-xx-xx型的文本会被自动映射成日期,可在mapping中关闭。

在document中设置为false。

PUT /mauanx4 // 创建索引mauanx4、type为user
{
  …
  "mappings":{
    "user":{
      " date_detection ":false //关闭。
    }
  }
}

(3)定制dynamic mapping template(type)

PUT /mauanx5 // 创建索引mauanx5、type为user
{
  "mappings":{
    "user":{
      "dynamic_templates": [
        {
          "en":{ // 模板名称
            "match":"*_en", // 所有名称结尾为_en的字段(此处使用了通配符,其他样式可自行修改。Eg:en_* à 开头为en_的字段)
            "match_mapping_type":"string", // 匹配es自动识别的字段类型,如boolean,long,string等
            "mapping":{ // 该字段的mapping
              "type":"text", // 类型为text
              "analyzer":"english" // 分词器为英文分词器
            }
          }
        }
      ]
    }
  }
}

补充参考:Elasticsearch Mapping设置。(我不知道这是es.x的mapping,仅供参考)


下篇:Java + es 实战。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值