美文网首页
Dynamic Mapping 和 常见字段类型

Dynamic Mapping 和 常见字段类型

作者: 滴流乱转的小胖子 | 来源:发表于2020-06-30 06:56 被阅读0次

    一、Mapping

    image.png

    关于type

    index、type的初衷

    之前es将index、type类比于关系型数据库(例如mysql)中database、table,这么考虑的目的是“方便管理数据之间的关系”。
    https://www.cnblogs.com/huangfox/p/9460361.html

    二、字段的数据类型

    image.png

    三、什么是Dynamic Mapping

    自动创建索引,自动识别索引中的类型,有一定识别误差


    image.png

    四、类型的自动识别

    image.png

    五、能否修改Mapping的字段类型

    image.png

    六、控制Dynamic Mappings

    image.png

    /////////////////////////////////
    Mapping中的字段一旦设定后,禁止直接修改。因为倒排索引生成后不允许直接修改。需要重新建立新的索引,做reindex操作。

    类似数据库中的表结构定义,主要作用

    定义所以下的字段名字
    定义字段的类型
    定义倒排索引相关的配置(是否被索引?采用的Analyzer)
    对新增字段的处理 true false strict

    在object下,支持做dynamic的属性的定义

    写入文档,查看 Mapping

    PUT mapping_test/_doc/1
    {
    "firstName":"Chan",
    "lastName": "Jackie",
    "loginDate":"2018-07-24T10:29:48.103Z"
    }

    查看 Mapping文件

    GET mapping_test/_mapping

    Delete index

    DELETE mapping_test

    dynamic mapping,推断字段的类型

    PUT dynamic_mapping_test/_doc/1
    {
    "uid" : "123",
    "isVip" : false,
    "isAdmin": "true",
    "age":19,
    "heigh":180
    }

    查看 Dynamic

    GET mapping_test/_mapping

    默认Mapping支持dynamic,写入的文档中加入新的字段

    PUT dynamic_mapping_test/_doc/1
    {
    "newField":"someValue"
    }

    该字段可以被搜索,数据也在_source中出现

    POST dynamic_mapping_test/_search
    {
    "query":{
    "match":{
    "newField":"someValue"
    }
    }
    }

    修改为dynamic false

    PUT dynamic_mapping_test/_mapping
    {
    "dynamic": false
    }

    新增 anotherField

    PUT dynamic_mapping_test/_doc/10
    {
    "anotherField":"someValue"
    }

    该字段不可以被搜索,因为dynamic已经被设置为false

    POST dynamic_mapping_test/_search
    {
    "query":{
    "match":{
    "anotherField":"someValue"
    }
    }
    }

    get dynamic_mapping_test/_doc/10

    修改为strict

    PUT dynamic_mapping_test/_mapping
    {
    "dynamic": "strict"
    }

    写入数据出错,HTTP Code 400

    PUT dynamic_mapping_test/_doc/12
    {
    "lastField":"value"
    }

    DELETE dynamic_mapping_test
    https://www.elastic.co/guide/en/elasticsearch/reference/7.1/dynamic-mapping.html

    相关文章

      网友评论

          本文标题:Dynamic Mapping 和 常见字段类型

          本文链接:https://www.haomeiwen.com/subject/mqhtqktx.html