zoukankan      html  css  js  c++  java
  • es mapping

    什么是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
          }
        }
      }
    }
    
    作者:iBrake
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    590. N-ary Tree Postorder Traversal
    700. Search in a Binary Search Tree
    885. Spiral Matrix III
    876. Middle of the Linked List
    908. Smallest Range I
    java中Class对象详解和类名.class, class.forName(), getClass()区别
    应用层之web和http
    122. 买卖股票的最佳时机 II
    129. 求根到叶子节点数字之和
    849. 到最近的人的最大距离
  • 原文地址:https://www.cnblogs.com/Brake/p/14497358.html
Copyright © 2011-2022 走看看