• 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
    
    • 1

    查出结果如下:

    在这里插入图片描述

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

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

    2. 获取所有的索引

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

    localhost:9200/_cat/indices?v
    
    • 1

    查询结果:

    在这里插入图片描述

    3. 删除索引

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    显然也不存在结果

    添加数据

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

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

    localhost:9200/test/_doc
    
    • 1

    body内容:

    {
        "name": "lisi",
        "sex": "男",
        "age": 17 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    返回结果集为:

    在这里插入图片描述

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

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

    自定义Id

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

    方法:

    url: localhost:9200/test/_doc/10086
    
    • 1

    结果集:

    在这里插入图片描述

    可见结果集中的Id为10086,

    那么我们继续执行会如何

    在这里插入图片描述

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

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

    结果如下:

    在这里插入图片描述

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

    如下:

    在这里插入图片描述

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

    根据索引查询

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

    根据具体的索引进行查询

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

    localhost:9200/test/_doc/10086
    
    • 1

    查询结果

    在这里插入图片描述

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

    查询结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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方法,也可以理解为覆盖

  • 相关阅读:
    Centos - 磁盘快照
    强平日志模块-埋点方案
    【SVM分类】基于matlab粒子群算法优化SVM分类【含Matlab源码 1859期】
    18天读完368页,靠着这份Alibaba面试通关秘籍,成功闯关“字节跳动”
    代理IP与Socks5代理:网络工程师的神奇魔法棒
    初次使用腾讯云,解决只能使用webshell连接,不能使用ssh连接。
    网络协议
    数据库视图&存储过程&存储函数&触发器总结
    【Linux】实验二 Makefile 的编写及应用
    Java中的泛型(Generics)
  • 原文地址:https://blog.csdn.net/m0_53341445/article/details/126212644