Elasticsearch 基础操作

1、Elasticsearch 数据格式

Elasticsearch 是面向文档型数据库, 一条数据在这里就是一个文档。 为了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比
ES 里的 Index 可以看做一个库,而 Types 相当于表,Documents 则相当于表的行。这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个
type,Elasticsearch 7.X 中, Type 的概念已经被删除了。

类似关系:

Elasticsearch  mysql
索引 数据库
类型
文档 表中的记录
属性

2、HTTP  操作

1、索引操作

1、创建索引

对比关系型数据库,创建索引就等同于创建数据库。

向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/shopping,如果重复添加索引,会返回错误信息。

2、查看所有索引

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/_cat/indices?v

3、查看单个索引

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/shopping

4、删除索引

在 Postman 中,向 ES 服务器发 DELETE 请求 :http://127.0.0.1:9200/shopping

重新访问索引时,服务器返回响应: 索引不存在。

2、文档操作

索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式。

1、创建文档

在 Postman 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_doc

请求体内容为:

{
"title":"小米手机",
"category":"小米",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":3999.00
}

上面的数据创建后,由于没有指定数据唯一性标识(ID),默认情况下,ES 服务器会随机生成一个。
如果想要自定义唯一性标识,需要在创建时指定:http://127.0.0.1:9200/shopping/_doc/1

此处需要注意:如果增加数据时明确数据主键,那么请求方式也可以为 PUT

2、查看文档

查看文档时,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询
在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/shopping/_doc/1

3、修改文档

和新增文档一样,输入相同的 URL 地址请求,如果请求体变化,会将原有的数据内容覆盖
在 Postman 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_doc/1

请求体内容为:

{
"title":"华为手机",
"category":"华为",
"images":"http://www.gulixueyuan.com/hw.jpg",
"price":4999.00
}

4、修改字段

修改数据时,也可以只修改某一给条数据的局部信息。

在 Postman 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_update/1

 请求体内容为:

{
"doc": {
"price":3000.00
}
}

5、删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。
在 Postman 中,向 ES 服务器发 DELETE 请求 :http://127.0.0.1:9200/shopping/_doc/1

6、条件删除文档

一般删除数据都是根据文档的唯一性标识进行删除, 实际操作时, 也可以根据条件对多条数据进行删除。

向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_delete_by_query

请求体内容为:

{
"query":{
"match":{
"price":4000.00
}
}
}

3、映射操作

有了索引库,等于有了数据库中的 database。

接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。
创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型
下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

1、创建映射

在 Postman 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student/_mapping

请求体内容为:

{
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "text",
"index": false
},
"age":{
"type": "long",
"index": false
}
}
}

映射数据说明:

字段名:任意填写,下面指定许多属性,例如:title、subtitle、images、price
 type:类型,Elasticsearch 中支持的数据类型非常丰富,说几个关键的:
 String 类型,又分两种:
text:可分词
尚硅谷 技术之 Elasticsearch
—————————————————————————————
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
keyword:不可分词,数据会作为完整字段进行匹配
 Numerical:数值类型,分两类
基本数据类型:long、integer、short、byte、double、float、half_float
浮点数的高精度类型:scaled_float
 Date:日期类型
 Array:数组类型
 Object:对象

index:是否索引,默认为 true,也就是说你不进行任何配置,所有字段都会被索引。
true:字段会被索引,则可以用来进行搜索
false:字段不会被索引,不能用来搜索

2、查看映射

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_mapping

3、索引映射关联

在 Postman 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student1

{
"settings": {},
"mappings": {
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "text",
"index": false
},
"age":{
"type": "long",
"index": false
}
}
}
}

  

posted @ 2021-10-07 21:49  精进的浩然兄  阅读(178)  评论(0编辑  收藏  举报