• Es学习第三课, ElasticSearch基本的增删改查


        前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查;ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用。在第一课我们就讲了索引、类型和文档的含义,它们分别对应MYSQL的数据库、表和一行数据。所以,我们在讲ES的API时,大家可以按照MYSQL的SQL语句对应做理解。

     ES Restful API GET、POST、PUT、DELETE、HEAD含义(这几个是API的基本概念): 
    1)GET:获取请求对象的当前状态。 
    2)POST:改变对象的当前状态。 
    3)PUT:创建一个对象。 
    4)DELETE:销毁对象。 
    5)HEAD:请求获取对象的基础信息。

    下面我们就利用Kibana的图形化界面,来展示下ES的基本API。

    1、新建一个索引(类似mysql 新建数据库)

     

    PUT /lib/
    {
      "settings":{
        "index": {
          "number_of_shards":3,
          "number_of_replicas":1
        }
      }
    }
    或者简单点,使用默认的分片和复制,可以直接
    PUT lib2
    这样也可以生成索引

    执行成功后,会显示如下:

    {
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "lib"
    }

    其中,lib表示索引名称,PUT 参数里的number_of_shards表示分片数量,number_of_replicas表示复制备份数量。

    2、查询索引

    GET /lib/_settings #查询索引lib的设置,
    
    GET _all/_settings #查询所有的索引设置

    3、添加文档(类似MYSQL添加一条数据)

    PUT /lib/user/1
    {
      "name" : "kakatadage",
      "age"  :  33,
      "about": "I like football!",
      "interests" : ["girls","football"]
    }
    使用PUT添加,其中user表示类型(type),1代表这条数据的主键;如果id不填也可以,ES会自动生成一条主键,不过这时就不能用PUT了,需要使用POST添加

    执行成功,结果如下:

    {
      "_index": "lib",
      "_type": "user",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }

    4、查询文档

    GET /lib/user/1   //查询ID为1的数据

    5、修改文档

    PUT /lib/user/1    //PUT方式进行修改,这种是把原来对应文档覆盖掉  
    {
      "name" : "kakatadage", 
      "age"  :  30,
      "about": "I like money!",
      "interests" : ["music","money"]
    }
    POST /lib/user/1/_update  //POST方式修改的话,可以针对对应field来修改,比PUT要轻量
    { 
      "doc": {
        "age" :32
      }
    }

    6、删除文档或索引

    DELETE lib/user/1  //删除一个文档
    DELETE lib2 //删除索引

    好了,基本的增删改查我们讲完了,是不是和SQL很类似,很简单?不过理解简单,实际使用还是要有大量的操作实践才行,而且实际生产环境中,都是各种复杂查询,后面我们会专门用几节课来讲。

  • 相关阅读:
    常用加密算法的Java实现总结(二) ——对称加密算法DES、3DES和AES
    常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
    在服务器上用Fiddler抓取HTTPS流量
    org.apache.commons.lang下的工具类
    Spring-bean作用域scope详解
    Tomcat性能调优方案
    JavaScript 闭包究竟是什么
    JavaScript跨域总结与解决办法
    《JAVA与模式》之简单工厂模式
    hibernate缓存机制详细分析
  • 原文地址:https://www.cnblogs.com/kakatadage/p/9922739.html
Copyright © 2020-2023  润新知