ElasticSearch-(二)ElasticSearch基本操作

本文最后更新于:February 25, 2022 pm

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

目录

区别

ElasticSearch:Index(索引)、Type(类型)、Documents(文档)、Fields(字段)

MySQL:Database(数据库)、Table(表)、Row(行)、Column(列)

在 ElasticSearch 6.X 中,一个Index下只能包含一个type,而在 ElasticSearch 7.X 中,Type的概念已经删除了,Index就是数据库也是表。所以,在 ElasticSearch 中索引就是数据库。

索引的类型

正排索引:指通过 Key 找 Value。

倒排索引:指通过 Value 找 Key。

索引操作

创建

对比 MySQL,等同于创建数据库。

发送 PUT 请求:http://127.0.0.1:9200/user

创建了一个 user 的索引。

查询

查询指定索引

发送 GET 请求:http://127.0.0.1:9200/user

查询全部索引

发送 GET 请求:http://127.0.0.1:9200/_cat/indices?v

删除

发送 DELETE 请求:http://127.0.0.1:9200/user

文档操作

创建

发送 POST 请求:http://127.0.0.1:9200/user/_doc

必须要有请求体!!即传的数据。在PostMan中,添加 JSON 格式的请求体即可。例如:

1
2
3
4
5
{
"name":"墨水记忆",
"url":"www.tothefor.com",
"author":"DragonOne"
}

这种方式创建的会生成一个随机的 id,可以通过此 id查询对应数据。但因为 id 是随机的,不方便,所以我们可以自己确定 id。见下。

自定义ID

发送 POST 请求或者 PUT 请求:http://127.0.0.1:9200/user/_doc/id 如:http://127.0.0.1:9200/user/_doc/1001

这样就可以通过自定义的 id进行查询对应数据。

创建还有一种方式,但必须是用于自定义id的时候:

发送 POST 请求或者 PUT 请求:http://127.0.0.1:9200/user/_create/id

总结

随机id创建,一种方式:

自定义id创建,有两种方式:

查询

通过ID查询(主键查询)

发送 GET 请求:http://127.0.0.1:9200/user/_doc/id

查询全部(全查询)

发送 GET 请求:http://127.0.0.1:9200/user/_search

删除

发送 DELETE 请求:http://127.0.0.1:9200/user/_doc/id

修改操作

覆盖性修改(全局修改)

意思是:不管你修改多少,都必须把原本有的数据都带上。

只需要再发送一次创建请求即可。

发送 POST 请求或者 PUT 请求:http://127.0.0.1:9200/user/_doc/id

然后把所有的数据都再一次传入请求体中,需要修改的值传新值即可。

但是需要注意的是:如果不需要修改的数据没有传入,那么执行后没有传入的数据将会被删除掉!,即:需要修改的数据修改为新值后传入,不需要修改的数据也要传入!

局部修改

意思是:修改什么带什么。

发送 POST 请求:http://127.0.0.1:9200/user/_update/id

请求体也需要改变:

1
2
3
4
5
{
"doc":{
"key":"value" //key为待修改的key,value为新值
}
}