1.字符串类型
- string
- text
- keyword
从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代;当一个字段是要被全文搜索的,设置text类型,字段内容会被分析,text类型的字段不用于排序,很少用于聚合;keyword类型的字段只能通过精确值搜索到,如果字段需要进行过滤、排序、聚合,设置keyword类型。
2.整数类型
- long
- integer
- short
- byte
注:尽可能选择范围小的数据类型,字段的长度越短,索引和搜索的效率越高
3.浮点类型
- double:64位双精度IEEE 754浮点类型
- float:32位单精度IEEE 754浮点类型
- half_float:16位半精度IEEE 754浮点类型
- scaled_float : 缩放类型的的浮点数
4.逻辑类型
- boolean
5.日期类型
- date
日期类型表示格式可以是以下几种:
- 日期格式的字符串,比如 “2018-01-13” 或 “2018-01-13 12:10:30”
- long类型的毫秒数( milliseconds-since-the-epoch,epoch就是指UNIX诞生的UTC时间1970年1月1日0时0分0秒)
- integer的秒数(seconds-since-the-epoch)
6.范围类型
-
range
范围类型要求字段值描述的是一个数值、日期或IP地址的范围, 在添加文档时可以使用: gte、gt、lt、lte分别表示 >=、 > 、< 、<= 。
7.二进制类型 -
binary
二进制字段是指用base64来表示索引中存储的二进制数据,可用来存储二进制形式的数据,例如图像。默认情况下,该类型的字段只存储不索引。
8.复合类型 -
数组类型 array
-
对象类型 object :JSON格式对象数据
-
嵌套类型 nested
-
地理类型 地理坐标类型 geo_point
-
地理地图 geo_shape
-
特殊类型 IP类型 ip
-
范围类型 completion
-
令牌计数类型 token_count
-
附件类型 attachment
-
抽取类型 percolator
9.多数据类型
有些字段可以同时兼容两种字段类型,此时:
http://localhost:9200/address/_mapping put { "properties": { "name": { "type": "text", "analyzer": "ik_max_word", "fields": { "keyword": { "ignore_above": 256, "type": "keyword" } } } } }
上面示例中name同时拥有text和keyword类型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)