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很类似,很简单?不过理解简单,实际使用还是要有大量的操作实践才行,而且实际生产环境中,都是各种复杂查询,后面我们会专门用几节课来讲。

posted @ 2018-11-07 16:36  卡卡他大哥  阅读(3703)  评论(0编辑  收藏  举报