elasticsearch 动态映射

一般情况下我感觉很少用单纯的动态映射,除非业务简单。一般也是用动态映射模板和静态映射。
默认情况下动态映射是打开的,可以通过设置索引参数为false(忽略新field)或者strict(遇到未知field抛出异常~嗯-官方是这么写的)
通过_settings去获取默认的配置
GET /index(可缺省)/_settings(缺省的话默认是全部的index)

{
  "xx-2018.06.23": {
    "settings": {
      "index": {
        "creation_date": "1531274469467",
        "number_of_shards": "5",
        "number_of_replicas": "1",
        "uuid": "TrIbNCbPSe2Jq86FN0QScw",
        "version": {
          "created": "6030099"
        },
        "provided_name": "xx-2018.06.23"
      }
    }
  }

好吧,好像看起来没啥东西~~!
有些书上写的_default_,已经在6.0.x上删除~没有意义

如果启用了date_detection(默认),那么将检查新的字符串字段,看看它们的内容是否与dynamic_date_format中指定的任何日期模式匹配。如果找到匹配项,则添加一个具有相应格式的新日期字段默认格式是这样的
当然是6.3版本的~
[ "strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
贴出官方示例

PUT my_index/_doc/1
{
  "create_date": "2015/09/02"
}

GET my_index/_mapping
结果
{
  "my_index": {
    "mappings": {
      "_doc": {
        "properties": {
          "create_date": {
            "type": "date",
            "format": "yyyy/MM/dd HH:mm:ss||yyyy/MM/dd||epoch_millis"
          }
        }
      }
    }
  }
}

禁用日期检查

PUT my_index
{
  "mappings": {
    "_doc": {
      "date_detection": false
    }
  }
}


PUT my_index/_doc/1 
{
  "create": "2015/09/02"
}


GET my_index/_mapping
结果
{
  "my_index": {
    "mappings": {
      "_doc": {
        "date_detection": false,
        "properties": {
          "create": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

已经变成了text格式了

修改动态映射日期的格式

PUT my_index
{
  "mappings": {
    "_doc": {
      "dynamic_date_formats": ["yyyy-MM-dd HH:mm:ss"]
    }
  }
}


PUT my_index/_doc/1 
{
  "create": "2018-07-16 12:11:00"
}


GET my_index/_mapping

对于数字的动态映射检查是关闭的(OK ,附上官方示例)

PUT my_index
{
  "mappings": {
    "_doc": {
      "numeric_detection": true
    }
  }
}

PUT my_index/_doc/1
{
  "my_float":   "1.0", 
  "my_integer": "1" 
}

你可能感兴趣的:(elasticsearch 动态映射)