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
}

java 删除es中索引中的数据 es删除索引字段_分词器


在执行完命令之后,会生成名为test1的索引,在es head中查看一下test1索引及对应的记录是否存在:

java 删除es中索引中的数据 es删除索引字段_值类型_02

那么如果想要指定字段类型,可以将指定的类型写入"mappings":{“properties”}中:

PUT /test2
{
	“mappings”: {
		“properties”: {
				//在这里写字段以及对应的类型
		}
	}
}

这里举个例子,创建索引test2

java 删除es中索引中的数据 es删除索引字段_分词器_03


创建完索引后,使用GET命令来看一下test2索引的配置

GET /test2

java 删除es中索引中的数据 es删除索引字段_值类型_04

接下来创建一个字段类型为默认的索引test3

java 删除es中索引中的数据 es删除索引字段_java 删除es中索引中的数据_05

3. 修改索引内容

修改索引内容有两种方法:
1、直接重新赋值

PUT /test3/_doc/1
{
	“name”: “火子哥”,
	“age”: 11,
	“birth”: “2020-11-11”
}

java 删除es中索引中的数据 es删除索引字段_值类型_06


在修改后可以看到右侧的“_version”和“_result”都发生了变化,每当修改内容的时候,"_version"都会+1,"_result"也会显示出对应的操作类型。

这种方法虽然简单暴力,但是也有他的缺点

缺点:在第一次添加记录时,这里添加的是"name"、“age”、“birth”,当我们对这条记录进行修改时,如果我们只输入"name"、“age”,那么对应的"birth"会消失,也就是说这条记录会被无条件覆盖。

2、_update方法

POST /test3/_doc/1/_update
{
	“doc”: {
		“name”: “火子哥最帅”
	}
}

java 删除es中索引中的数据 es删除索引字段_分词器_07

这种方式是目前比较推荐的修改记录的操作。

4. 删除索引(内容)

删除索引的命令一般使用DELETE,会根据你的请求来判断是删除索引还是删除文档记录

这里删除索引test1

java 删除es中索引中的数据 es删除索引字段_字段类型_08

看到右边显示true说明操作成功了。
可以试一下在test2中添加一条记录,然后使用DELETE请求删除这条记录,删除前后记得去es head中看一下变化。