原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/mapping-types.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/mapping-types.html

字段数据类型

Elasticsearch 中文档的字段支持多种不同的数据类型:

核心数据类型

字符串(string)
textkeyword
数值 (numeric)
longintegershortbytedoublefloathalf_floatscaled_float
日期(Date)
date
日期纳秒(date nanoseconds)
date_nanos
布尔(boolean)
boolean
二进制(binary)
binary
范围(range)
integer_rangefloat_rangelong_rangedouble_rangedate_rangeip_range

复杂的数据类型

对象(object)
单个JSON对象的object
嵌套(nested)
JSON数组对象的嵌套(nested)

地理(geo)数据类型

地理坐标点(geo-point)
geo_point:用于表示经纬度坐标点
地理形状(geo-shape)
geo_shape:用于表示多边形等复杂形状

特殊的数据类型

IP
ip:用于IPv4和IPv6地址
完成(completion)数据类型
completion:提供自动完成建议
词元计数(token count)
token_count:用于计算一个字符串中词元的数量
mapper-murmur3
murmur3:用于在编制索引时计算值的散列并将它们存储在索引中的
mapper-annotated-text
annotated-text:对包含特殊标记的文本进行索引(通常用于标识命名实体)
Percolator
接受来自 Query-DSL 的查询
连接(join)
为同一索引中的文档定义父-子关系
排名特征(rank feature)
记录数字特征以提高查询时的命中率。
排名特征(rank features)
记录(多个)数字特征以提高查询时的命中率。
密集向量(dense vector)
记录浮点值的密集向量。
稀疏向量(sparse vector)
记录浮点值的稀疏向量。
输入即搜索(search-as-you-type)
一个类似文本的字段,针对查询进行了优化,以实现随输入的自动完成
别名(alias)
定义现有字段的别名。
展开(flattened)
允许将整个JSON对象作为单个字段进行索引。
形状(shape)
任意笛卡尔几何图形的形状(shape)。
直方图(histogram)
histogram,百分位数聚合的预聚合数值直方图。
常量关键字(constant keyword)
当所有文档具有相同值时,会将keyword特殊化处理。

数组

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

多字段(multi-fields)

出于不同的目的,以不同的方式索引同一个字段通常是有用的。 例如,一个string字段可以映射为用于全文搜索的text字段,也可以映射为用于排序或聚合的keyword字段。 或者,可以使用standard分析器english分析器french分析器来索引一个text字段。

这就是多字段(multi-fields)的目的。 大多数数据类型可以通过fields参数支持多字段。