ElasticSearch 入门

ElasticSearch 入门

1. 索引的创建

在Http中创建ElasticSearch 需要使用Put方法,且索引不能够重复

创建时需要访问9200这个端口,这个端口用于请求

  1. 检查是否启动:

    访问localhost:9200 如果反应如下 则表示已经启动

在这里插入图片描述

  1. 发送put请求

    发送put请求我们借用postman进行实现:
    在这里插入图片描述

    URL为:localhost:9200/test,test 表示创建的索引名称,表示我们创建了一个名称为test的索引,这里的索引与MySQL的索引不同,这里的索引在更多的情况下能够代表一个库

    此时的test索引一定是存在的,我们再次进行创建(再次send请求)

在这里插入图片描述

可以看到请求失败,原因是索引(index) test已经存在,无法再次创建

2. 查看索引

查看索引就需要使用get方法,索引查询有两种,一种为精准查询,另一种就是查询所有

1. 精准查询

需要使用索引的完全名称直接查询,使用方法如下:

localhost:9200/test

查出结果如下:

在这里插入图片描述

内部包含你的uuid、创建日期等一些列相关信息,uuid和Java的uuid一样,是一个唯一标识,可以根据UUID在本地磁盘中找到相关位置

例如这里的UUID为iBtbVUkkQy2RYwIw0F3lAg,我们在ElasticSearch的data\nodes\0\indices目录下找到相应的文件夹,
在这里插入图片描述

2. 获取所有的索引

这时候请求的方法仍是get方法,但是路径不同

localhost:9200/_cat/indices?v

查询结果:

在这里插入图片描述

3. 删除索引

删除索引的URL不用动,只需要将方法进行一个替换,将Put方法改成Delete方法即可

在这里插入图片描述

为了证明是否被删除,我们再次通过get 方法来获取这个索引:

在这里插入图片描述

可见状态为404,老标识了,表示没有找到,其次看reason 也可以发现

除此之外我们也可以查询所有去查看是否存在

在这里插入图片描述

显然也不存在结果

添加数据

在存在索引之后我们需要向索引中添加数据,这时候我们需要使用post方法,需要注意的是添加数据需要时json格式

例如:我们添加一个数据为 姓名为李四 年龄18 的男人,并把他放在我们的test下

localhost:9200/test/_doc

body内容:

{
    "name": "lisi",
    "sex": "男",
    "age": 17 
}

返回结果集为:

在这里插入图片描述

这里的Id是随机生成的,具有唯一性,但是这个Id我们可以自定义且不能重复,如果重复则会覆盖

result 表示执行的结果,我们可以看到其结果为 created,还存在其他类型 如updated,表示更新。

自定义Id

自定义ID可以使用post方法 或者 put方法,但是如果id是随机生成的,只能使用put方法

方法:

url: localhost:9200/test/_doc/10086

结果集:

在这里插入图片描述

可见结果集中的Id为10086,

那么我们继续执行会如何

在这里插入图片描述

可以看到result 变成了updated,表示该操作成了更新操作

另外写法:
localhost:9200/test/_create/10088

结果如下:

在这里插入图片描述

其类型为_doc_和原来一样,但是只能用于创建,如果已经存在,那么该方法就会报错

如下:

在这里插入图片描述

它提示我们这个doc已经存在了,不能够覆盖。

根据索引查询

当存入数据我们肯定是需要使用,那么我们就需要对其进行一个查询,查询有两种,一种是根据根据具体的索引进行查询,另一种是直接查询出所有的索引

根据具体的索引进行查询

在上文中,我们创建了一个索引test,在其下创建了一个id为10086的类,我们来获取这个doc

localhost:9200/test/_doc/10086

查询结果

在这里插入图片描述

查询出这个索引下的所有doc
localhost:9200/test/_search

查询结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3cpWZHX1-1659859667422)(C:\Users\19865\AppData\Roaming\Typora\typora-user-images\image-20220802222319953.png)]

在查询结果中,可以看到total的value中的值有5个,其结果实际上确实存在5个,我们的10086、10087都存在,也确实是我们设置的。

修改

数据存入后往往不是一成不变的,存入数据库的数据总是要修改,那么通过ElasticSearch的数据如何修改?

其实存在两种修改方式 局限修改和全局修改

局限修改

所谓的局限修改就是精准的修改单个数据

这里需要使用put方法,也可以理解为覆盖

举例 修改id为10086的doc,添加电话这一个属性

修改

数据存入后往往不是一成不变的,存入数据库的数据总是要修改,那么通过ElasticSearch的数据如何修改?

其实存在两种修改方式 局限修改和全局修改

局限修改

所谓的局限修改就是精准的修改单个数据

这里需要使用put方法,也可以理解为覆盖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值