es-什么是mapping-05

Elasticsearch 什么是mapping

mapping 的定义

  • Mapping类似数据库中的schema的定义,作用如下
    • 定义索引中的字段的名称
    • 定义字段的数据结构类型,例如字符串,数字,布尔… …
    • 字段,倒排索引的相关配置,(Analyzed or Not Analyzed,Analyzer)
  • Mapping会把Json文档映射成Lucene所需要的扁平格式
  • 一个mapping属于一个索引的Type
    • 每个文档都属于一个Type
    • 一个Type有一个mapping定义
    • 7.0开始,不需要在mapping定义中指定type信息

字段的数据类型

  • 简单类型
    • Text/Keyword
    • Date
    • Integer/Floating
    • Boolean
    • IPv4 & IPv6
  • 复杂类型-对象和嵌套对象
    • 对象类型/嵌套类型
  • 特殊类型
    • geo_point &* geo_shape / percolator

什么是Dynamic Mapping

  • 在写入文档时候,如果索引不存在,会自动创建索引
  • Dynamic Mapping的机制,使得我们无需动手定义mappings。Elasticsearch会自动根据文档信息,推算出字段的类型
  • 在使用地理位置信息时,有时候会推算的不对。如果类型设置不对时,会导致一些功能无法运行,例如Rang查询

es-什么是mapping-05
http://example.com/2022/11/09/es/es-什么是mapping-05/
作者
weijun Wu
发布于
2022年11月9日
许可协议