ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

es mapping

2021-03-07 23:32:55  阅读:172  来源: 互联网

标签:info dynamic mapping 文档 user type es


什么是mapping

mapping类似于数据库的schema,表结构,主要作用如下:

  1. 定义索引中字段的名称
  2. 字段的数据类型
  3. 倒排索引相关的配置

mapping会把es中的json文档映射成lucene所需要的扁平格式。

字段类型

  1. 简单类型

    1. Text / Keyword
    2. Date
    3. Integer / Floating
    4. Boolean
    5. IPv4 / IPv6
  2. 复杂类型

    1. 对象类型、嵌套类型
  3. 特殊类型

    1. 地理信息类型

什么是dynamic mapping

在创建索引文档的时候,es会根据文档信息推算出字段的类似(有时候不一定对)。dynamic mapping机制使得我们无需手动定义mapping。

查看mapping:

// create user_info
post user_info/_doc
{
  "name":"asd",
  "birthday":"2020-11-23",
  "address":"china"
}

//get mapping
get /user_info/_mappings

返回mapping如下:

{
  "user_info" : {
    "mappings" : {
      "properties" : {
        "address" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "birthday" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

dynamic字段设置

通过dynamic参数来控制字段的新增:

  • true(默认)文档可以正常写入,新增字段可索引
  • false 文档可以正常写入,但无法对新增字段索引(字段不能被用来搜索)
  • strict 文档不能写入,报错

设置脚本:

PUT user_info/_mapping
{
  "dynamic":"true"
}

显式Mapping设置

示例脚本

PUT new_user
{
  "mappings": {
    "properties": {
      "firstName":
      {
        "type": "text"
      },
       "lastName":
      {
        "type": "text"
      },
       "birth":
      {
        "type": "date",
        "index": false
      }
    }
  }
}

标签:info,dynamic,mapping,文档,user,type,es
来源: https://www.cnblogs.com/Brake/p/14497358.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有