1 核心数据类型
| 字符类型 | 说明 |
| text |
⽤于全⽂索引,搜索时会自动使用分词器进⾏分词再匹配。字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项 |
| keyword |
不分词,搜索时需要匹配完整的值 |
| 整数类型 | 说明 (1byte(字节)=8bit(位、比特)) |
| byte |
(1字节)-128 到127(- 2^7 到 2^7– 1) |
| short |
(2字节)-32,768到32,767 (- 2^15 到 2^15– 1) |
| integer |
(4字节)-2,147,483,648到2,147,483,647 (- 2^31 到 2^31– 1) |
| long |
(8字节)(- 2^63 到 2^63– 1) |
| 浮点类型 | 说明 |
| float |
32位单精度IEEE 754浮点类型 |
| double |
64位双精度IEEE 754浮点类型 |
| half_float |
16位半精度IEEE 754浮点类型 |
| scaled_float |
缩放类型的的浮点数(比如价格只需要精确到分,price为57.34的字段缩放因子为100,存起来就是5734) |
JSON中没有日期类型,所以在ELasticsearch中,日期类型可以是以下几种:
日期格式的字符串:e.g. “2015-01-01” or “2015/01/01 12:10:30”.
long类型的毫秒数( milliseconds-since-the-epoch)
integer的秒数(seconds-since-the-epoch)
| 布尔类型 | 说明 |
| boolean |
true/false |
| 二进制类型 | 说明 |
| binary |
该binary类型接受二进制值作为 Base64编码的字符串 |
| 范围类型 | 说明 |
| integer_range |
一个带符号的32位整数范围,最小值为,最大值为。 -2^31到 2^31-1 |
| float_range |
一系列单精度32位IEEE 754浮点值 |
| long_range |
一系列带符号的64位整数,最小值为,最大值为。 -2^63 到 2^63-1 |
| double_range |
一系列双精度64位IEEE 754浮点值 |
| date_range |
自系统时代以来经过的一系列日期值,表示为无符号的64位整数毫秒 |
| ip_range |
支持IPv4或 IPv6(或混合)地址的一系列ip值 |
2 复杂数据类型
| 对象类型 | 说明 |
| object |
对象,用于单个JSON对象 |
3 地理数据类型
| 地理位置数据类型 | 说明 |
| geo_point |
geo_point为纬度/经度点 |
| 地理形状数据类型 | 说明 |
| geo_shape |
geo_shape映射将geo_json几何对象映射到geo_shape类型,用于多边形等复杂形状 |
4 专用的数据类型
| 专用的数据类型 | 说明 |
| ip |
ip用于IPv4和IPv6地址 |
| Completion data type |
提供自动完成建议 |
| Token count |
计算字符串中令牌的数量 |
| mapper-murmur3 |
在索引时计算值的哈希并将其存储在索引中 |
| mapper-annotated-text |
annotated-text 索引包含特殊标记的文本(通常用于标识命名实体) |
| Percolator |
接受来自query-dsl的查询 |
| Join |
为同一索引内的文档定义父/子关系 |
| Rank feature |
记录数字功能以提高查询时的点击率 |
| Rank features |
记录数字功能以提高查询时的点击率 |
| Dense vector |
记录浮点值的密集向量 |
| Sparse vector |
记录浮点值的稀疏向量 |
| Search-as-you-type |
针对查询进行优化的类文本字段,以实现按需输入完成 |
| Alias |
为现有字段定义别名。 |
| Flattened |
Allows an entire JSON object to be indexed as a single field |
| Shape |
shape 对于任意笛卡尔几何 |
| Histogram |
histogram 用于百分位数聚合的预聚合数值。 |
| Constant keyword |
keyword当所有文档具有相同值时的情况的 专业化。 |
5 数组
在Elasticsearch中,数组不需要专用的字段数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型。请参阅数组。
6 多领域
为不同的目的以不同的方式对同一字段建立索引通常很有用。例如,一个string字段可以映射为text用于全文搜索的字段,也可以映射为keyword用于排序或聚合的字段。或者,您可以使用standard分析仪, english分析仪和 french分析仪索引文本字段。
这是多领域的目的。大多数数据类型通过fields参数支持多字段。