原英文版地址: 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
参数支持多字段。