ES常见数据类型及用途
1. 基础类型
ES类型 | 对应MySQL类型 | 特点 | 示例场景 |
---|
text | VARCHAR/TEXT | 全文分词搜索,默认用标准分词器 | 商品描述、日志内容 |
keyword | CHAR/VARCHAR | 精确匹配,不分词 | 订单号、标签、枚举值(如状态码) |
long | BIGINT | 64位整数 | ID、数量、时间戳 |
integer | INT | 32位整数 | 年龄、评分 |
short | SMALLINT | 16位整数 | 状态码、优先级 |
byte | TINYINT | 8位整数 | 布尔值(0/1) |
double | DOUBLE | 双精度浮点数 | 价格、地理坐标 |
float | FLOAT | 单精度浮点数 | 评分、百分比 |
boolean | BOOL/TINYINT(1) | true/false | 是否上架、用户激活状态 |
date | DATETIME/TIMESTAMP | 支持多种日期格式 | 创建时间、订单日期 |
2. 高级类型
ES类型 | 特点 | 示例场景 |
---|
nested | 嵌套对象,独立索引 | 订单中的商品列表(保留对象关系) |
join | 父子文档关联 | 博客文章与评论(1对多) |
geo_point | 经纬度坐标 | 附近门店搜索 |
geo_shape | 复杂地理形状(多边形等) | 地理围栏 |
ip | IPv4/IPv6地址 | 安全审计、用户IP分析 |
completion | 自动补全建议 | 搜索框联想词 |
murmur3 | 哈希值存储 | 去重、指纹校验 |
3. 特殊类型
ES类型 | 用途 |
---|
alias | 字段别名(指向实际字段) |
flattened | 将整个JSON对象映射为单个字段 |
wildcard | 优化通配符查询(如*abc* ) |