elasticsearch 7.x 索引的增、删、改
- 一、 索引的增、删、改
- 1. 默认字段类型
- 2. 创建索引
- 3. 修改索引内容
- 4. 删除索引(内容)
在之前的内容里已经将es使用的基本环境全部安装好了,如果没有安装的可以参考一下之前的文章。
一、 索引的增、删、改
首先启动es head,启动命令可以参考之前的文章。
1. 默认字段类型
1、字符串类型:text,keyword
text和keyword的主要区别在于分词器是否拆分,text类型在查询时会根据分词器类型将字符串拆分成对应单位,分词器种类可以参考之前的内容。
keyword是不会进行拆分的,在查询时默认看成一个整体。
2、数值类型:long、integer、short、byte、double、float、half_float、scaled_float
3、日期类型:date
4、布尔值类型:boolean
5、二进制类型:binary
2. 创建索引
创建索引的命令如下
PUT /索引名/类型名/文档id {请求体}
这里举个例子
PUT /test1/type1/1
{
“name”: “异火”,
“age”: 1
}
在执行完命令之后,会生成名为test1的索引,在es head中查看一下test1索引及对应的记录是否存在:
那么如果想要指定字段类型,可以将指定的类型写入"mappings":{“properties”}中:
PUT /test2
{
“mappings”: {
“properties”: {
//在这里写字段以及对应的类型
}
}
}
这里举个例子,创建索引test2
创建完索引后,使用GET命令来看一下test2索引的配置
GET /test2
接下来创建一个字段类型为默认的索引test3
3. 修改索引内容
修改索引内容有两种方法:
1、直接重新赋值
PUT /test3/_doc/1
{
“name”: “火子哥”,
“age”: 11,
“birth”: “2020-11-11”
}
在修改后可以看到右侧的“_version”和“_result”都发生了变化,每当修改内容的时候,"_version"都会+1,"_result"也会显示出对应的操作类型。
这种方法虽然简单暴力,但是也有他的缺点
缺点:在第一次添加记录时,这里添加的是"name"、“age”、“birth”,当我们对这条记录进行修改时,如果我们只输入"name"、“age”,那么对应的"birth"会消失,也就是说这条记录会被无条件覆盖。
2、_update方法
POST /test3/_doc/1/_update
{
“doc”: {
“name”: “火子哥最帅”
}
}
这种方式是目前比较推荐的修改记录的操作。
4. 删除索引(内容)
删除索引的命令一般使用DELETE,会根据你的请求来判断是删除索引还是删除文档记录
这里删除索引test1
看到右边显示true说明操作成功了。
可以试一下在test2中添加一条记录,然后使用DELETE请求删除这条记录,删除前后记得去es head中看一下变化。