自学ES-02之索引CRUD
[toc]
注:下面的操作都是在 kibana 中进行的。
索引(index)
索引的创建
1 | PUT /{index_name} |
索引查看
1 | GET /{index_name} |
索引删除
1 | DELETE /{index_name} |
索引打开和关闭
ES 支持对索引进行关闭操作,关闭后也可以重新打开。索引一旦关闭:
- 不能写入数据
- 不能搜索数据
kibana
1 | POST /{index_name}/_close |
索引关闭后,再对索引进行数据写入或搜索,将返回如下报错信息:
1 | { |
打开索引
1 | POST /{index_name}/_open |
索引别名
可以对多个索引设置相同的别名,从而将这些索引通过别名进行聚合,然后再对设置别名的索引进行操作,就相当于是在同时操作这些别名匹配的索引。
映射(mappings)
创建映射
映射是在创建索引时一并指定。映射可以理解为关系型数据库中的表定义。一张表有哪些字段,每个字段什么类型。
查看映射
1 | GET /{index_name}/_mapping |
修改映射
映射不能修改,只能扩展。,如果需要修改映射的字段类型的时候应该怎么办?
1 | # 扩展映射 |
数据类型
keyword
keyword
类型是不能再切分的字符串类型。在搜索的时候,不对 keyword
类型的字符串进行切分后的部分匹配。使用 term
查询数据。
text
text
精英是可切分的字符串类型。在搜索的时候,会按照分词算法对 text
类型的字符串进行切分后匹配。使用 match
查询数据。
数值类型
long(长整型):8字节,64位, $-2^{63}$ —— $2^{63}$-1
integer(整型):4字节,32位,$-2^{31}$ —— $2^{31}$-1
short(短整型):2字节,16位,$-2^{15}$ —— $2^{15}$-1
byte(字节):1字符,8位,$-2^{7}$ —— $2^{7}$,即 -128——127
double(双精度):8字节,64位。
float(单精度):4字节,32位
half_float(半精度):2字符,16位。
scaled_float(缩放浮点型)
unsigned_long(无符号长整形):6字节,64位。$2^{64}-1$
布尔(boolean)
- true 或 “true”
- false 或 “false”
日期类型(date)
日期类型为两种:
- strict_date_optional_time:严格的日期类型,yyyy-MM-dd、yyyyMMdd、yyyyMMddHHmmss、yyyy-MM-ddTHH:mm:ss、yyyy-MM-ddTHH:mm:ss.SSS和yyyy-MM-ddTHH:mm:ss.SSSZ
- epoch_millis:时间戳类型
数组
ES 定义的格式,自动支持数组。在定义时,使用数组的内容项的类型定义 mapping 即可。写入数据时,使用 []
的形式。
1 | POST /{index_name}/001 |
tag 定义的是 keyword
的类型。
对象
与普通的对象操作一致。
示例:
1 |