元数据
_index: 代表当前的索引名(唯一标识索引的数据)
_type:代表数据的type类型,7.x后默认_doc
_id: 索引字段的唯一id,可以自定义,但是不能重复
_version:文档的版本号,如果进行更新等操作,会增加版本数
_seq_no:严格递增的顺序号。保证后写入的Doc的seqno比之前的大。
_primary_term: 代表主分片上数据重新分配的次数。比如重启节点,重新分配都会触发这个参数累加。
_routing: 路由规则,写入和查询要保证路由是一致。
数据建模方式对比
- 宽表模式
- nested嵌套模式
- 父子文档模式(一父对多子)
其中Nested与父子文档对比如下:
动态映射
如果ES所有的mapping没有提前指定的话,当写入第一条数据的时候,就会自动创建索引,并且生成对应的映射。
不同的数值类型有默认对应不同的es的数据结构,如下所示:
原始字段类型 | ES字段类型 | 备注 |
---|---|---|
null | 无字段 | |
true/false | boolean 类型 | |
123.22 | float 类型 | |
122 | long 类型 | |
object | object 对象类型 | |
array | object 类型 | 基于第一条数据的类型 |
string | text/keyword 双字段类型 | 5.x之后就是双字段类型,es没有string |
date格式的字符串 | date 类型 |