【Elasticsearch】ES 7.11 映射字段类型汇总 Mapping Field data types

版本号

7.11

映射字段类型

常见类型

binary

二进制值编码为Base64字符串

boolean

布尔类型 true或者false

Keywords

包括了

  • keyword,用于结构化内容,例如ID,电子邮件地址,主机名,状态代码,邮政编码或标签。
  • constant_keyword,始终包含相同值的关键字字段
  • wildcard,可针对类似grep的通配符查询优化日志行和类似的关键字值。

Dates

日期类型,包括了

  • date
  • date_nanos, 以纳秒级的分辨率存储日期,这限制了它的日期范围从大约1970到2262,因为日期仍存储为自纪元以来的较长的纳秒级表示。

alias

一个别名映射为索引中的一个字段定义的替代名称。

PUT trips
{
  "mappings": {
    "properties": {
      "distance": {
        "type": "long"
      },
      "route_length_miles": {
        "type": "alias",
        "path": "distance" 
      },
      "transit_mode": {
        "type": "keyword"
      }
    }
  }
}

对象和关系类型

object

json对象

flattened

整个对象映射为单字段,目的是为了防止动态映射对象导致的映射爆炸。

nested

nested是对象数据类型的专门版本,它允许以可以彼此独立地查询对象的方式对对象数组进行索引。

如果需要为对象数组建立索引并保持数组中每个对象的独立性,请使用nested而不是object。

join

join数据类型是一个特殊字段,可在相同索引的文档中创建父/子关系。 关系部分在文档中定义了一组可能的关系,每个关系都是父名称和子名称。

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "my_id": {
        "type": "keyword"
      },
      "my_join_field": { 
        "type": "join",
        "relations": {
          "question": "answer" 
        }
      }
    }
  }
}

结构化数据类型

Range

包括了

  • long_range,
  • double_range
  • date_range
  • ip_range

ip

包括了ipv4和ipv6,查询可以查网段。

version

软件版本号

murmur3

哈希值

汇总数据类型

aggregate_metric_double

存储度量标准聚合的预聚合数值。 Aggregate_metric_double字段是一个对象,其中包含一个或多个以下度量标准子字段:min,max,sum和value_count。

histogram

用于存储表示直方图的预聚合数值数据的字段。

文字搜索类型

text

非结构化文本。

annotated-text

包含特殊标记的文本。 用于标识命名实体。

completion

自动完成建议

search_as_you_type

search_as_you_type字段类型是一个类似文本的字段,经过优化,可以为提供按需输入完成情况的查询提供开箱即用的支持。

token_count

文本中的令牌数,也可以理解为单词。

文档等级类型

dense_vector

记录浮点值的密集向量。

sparse_vector

记录浮点值的稀疏向量。

rank_feature

记录数字功能以提高查询时的点击率。

rank_features

记录数字功能以提高查询时的点击率。

仅支持单值功能和严格为正的值。多值字段和零或负值将被拒绝。

空间数据类型

geo_point

经纬度地理位置

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "location": {
        "type": "geo_point"
      }
    }
  }
}

PUT my-index-000001/_doc/1
{
  "text": "Geo-point as an object",
  "location": { 
    "lat": 41.12,
    "lon": -71.34
  }
}

geo_shape

复杂的形状,例如多边形。

point

任意笛卡尔点。

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "location": {
        "type": "point"
      }
    }
  }
}

PUT my-index-000001/_doc/1
{
  "text": "Point as an object",
  "location": { 
    "x": 41.12,
    "y": -71.34
  }
}

shape

任意笛卡尔几何。

其他类型

percolator

索引以查询DSL编写的查询。

数组

在Elasticsearch中,数组不需要专用的字段数据类型。 默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的字段类型。

多字段

为不同的目的以不同的方式对同一字段建立索引。 例如,可以将字符串字段映射为用于全文本搜索的文本字段,并映射为用于排序或聚合的关键字字段:

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "city": {
        "type": "text",
        "fields": {
          "raw": { 
            "type":  "keyword"
          }
        }
      }
    }
  }
}

参考资料

  • https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小雨青年

程序员可以把咖啡转化成代码~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值