原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/mapping-types.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/mapping-types.html
本地英文版地址: ../en/mapping-types.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
Elasticsearch 中文档的字段支持多种不同的数据类型:
核心数据类型
- 字符串(string)
-
text和keyword - 数值 (numeric)
-
long、integer、short、byte、double、float、half_float、scaled_float - 日期(Date)
-
date - 日期纳秒(date nanoseconds)
-
date_nanos - 布尔(boolean)
-
boolean - 二进制(binary)
-
binary - 范围(range)
-
integer_range、float_range、long_range、double_range、date_range、ip_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参数支持多字段。